我想知道实现这样的安全问题PHP evaluator:
<?php eval($_POST['codeInput']); %>
Run Code Online (Sandbox Code Playgroud)
这是在对PHP sandbox消毒DB input等进行消毒等方面并不是一个大问题.
销毁托管文件的服务器的用户是.
我已经看到了Ruby simulators,我很好奇有什么安全明智(至少含糊不清的细节).
谢谢大家.我甚至不确定接受哪个答案,因为它们都很有用.
Owen的回答总结了我怀疑的东西(服务器本身会有风险).
arin的回答给出了潜在问题的一个很好的例子.
小智 6
这个eval()功能很难消毒,即使你这样做,肯定会有办法解决它.即使你过滤了exec,你需要做的就是以某种方式将字符串粘贴exec到一个变量中,然后做$variable().你需要真正削弱语言,以实现至少某种想象的安全性.
如果你有eval()类似的话,可能会遇到很大麻烦
<?php
eval("shell_exec(\"rm -rf {$_SERVER['DOCUMENT_ROOT']}\");");
?>
Run Code Online (Sandbox Code Playgroud)
这是一个极端的例子,但在这种情况下,您的网站将被删除.希望你的权限不允许它,但它有助于说明清理和检查的必要性.