我想知道如何在 PHP 的正则表达式系统中禁用 eval 修饰符,例如。 preg_replace('/.*/e', $code, '.')
.这是一个潜在的漏洞利用,如果有人设法将狡猾的代码放到服务器上,可以用来代替 eval。我最近遇到了一个问题,来自 woothemes 的 wordpress 主题有一个安全漏洞,允许黑客上传后门服务器管理类型脚本。
我的 php.ini 中有这个:
disable_functions = eval
这阻止了大部分可能造成的损害,但我想知道我是否可以做类似的事情来防止除 call_user_func_array()
之外的所有形式的“评估”东西?
最佳答案
Suhosin extension提供一个选项 disable the /e
modifier .
disable_functions = eval
不会执行您期望的操作(因为 eval
不是函数,而是语言结构)。 Suhosin 扩展再次提供了一个选项 disable eval
.
关于php - 如何在 PHP 中禁用 'e' PREG_REPLACE_EVAL 修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243073/