为什么 suhosin.executor.disable_emodifier 不起作用?

Why doesn't suhosin.executor.disable_emodifier work?

我 运行 PHP5.6 在 ubuntu12.04 上作为 apache 2.4 模块 Suhosin 是从源安装的

Suhosin 已启用,我可以在 phpinfo() 函数输出中看到它。 我在 suhosin.ini:

中有这些行
suhosin.executor.disable_eval = On
suhosin.executor.disable_emodifier = On

而且我还可以在 phpinfo() 中看到它们已启用。全球和本地。

但出于某种原因很简单

eval('echo 5;');

只给我看了该死的“5”!!!

同样如此

preg_replace("/.*/e", "eval('echo 5, PHP_EOL;')", ".");

如何启用那个 suhosin?

您必须检查 phpinfo()suhosin.executor.disable_evalsuhosin.executor.disable_emodifier 行的本地值和主值,以确保正确读取配置文件,而不是仅用于suhosin的激活。

这些指令的本地值应设置为 'On'。

如果本地关闭但主机打开,那么您的虚拟主机配置可能会覆盖此参数。如果两者都关闭,那么你 suhosin.ini 没有被正确解析

您还必须检查 suhosin.simulation(调试模式)设置为 Off