4 ms·
> The problem is usually not Turing completeness [...] You're technically correct (the best kind of correct), but jandrese wrote "a complete language", not "a
by adwn 6y ago
> The problem is usually not Turing completeness [...]
You're technically correct (the best kind of correct), but jandrese wrote "a complete language", not "a Turing-complete language". You don't need Turing-completeness to create security problems – filesystem access alone does that.
> The former is trivial to solve: add a timeout.
That only solves the termination problem, which is a minor concern anyway. You don't need much time to compromise a system if you have filesystem access. No "bugs in the parser implementation" needed.
- imtringued 6y agoYou can start a lua VM with an empty environment (basically no standard library).
- adwn 6y agoThe first thing any scripting-language-used-as-flexible-config-files will want to add is a way to include shared config files, typically with computed (i.e., non-constant) file names or paths. It's possible to sandbox this, but also rather complex compared to a non-executable data file format.
- Dylan16807 6y agoYou're going to want the ability to pull in shared config files whether you're using a scripting language or not. And the way you need to sandbox those paths is roughly the same either way.