执行带有限制的PHP代码

Joe*_*Joe 1 php regex

我们有一个CMS编辑器,允许在其中使用php,但是我们需要限制访问一些命令,如file_get_contents,file()和global.

有人可以帮助我使用布尔响应正则表达式吗?模板中的文本存储在字符串中.

我知道,可能不是一个理想的方法,但现在我可以想出来:)

Nik*_*kiC 6

你想做的事几乎是不可能的.如果允许人们在您的计算机上执行代码,那么保护自己免受攻击真的很难.

以下是我对它的尝试:Sandbox.源代码.

它的作用基本上是为文件系统访问,shell访问,aso维护一大堆列入黑名单的函数(show_source如果你想将它用于真实的东西,我不允许使用某些函数来读取文件系统).

它还试图保护免受更多隐藏的攻击,例如$func = 'unlink'; $func(__FILE__);将其变成$func = 'unlink'; ${'___xyz'.!$___xyz=Sandbox::checkVarFunction($func)}(__FILE__)aso

PS:你可能还不想让人们在你的网站上运行PHP代码.风险太大了.相反,我会允许人们在编辑器中使用模板语言.一个好的候选人是Twig,因为它有一个内置的沙箱,允许你限制使用某些标签,功能,...