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

Kon*_*nia 5 php security suhosin php-5.6

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

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

suhosin.executor.disable_eval = On
suhosin.executor.disable_emodifier = On
Run Code Online (Sandbox Code Playgroud)

我也可以在phpinfo()中看到它们已启用.全球和本地.

但由于某种原因很简单

eval('echo 5;');
Run Code Online (Sandbox Code Playgroud)

只是告诉我该死的"5"!

同样的

preg_replace("/.*/e", "eval('echo 5, PHP_EOL;')", ".");
Run Code Online (Sandbox Code Playgroud)

如何启用suhosin?

Ada*_*dam 1

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

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

如果本地关闭但主机打开,则您的虚拟主机配置可能会覆盖此参数。如果两者都关闭,则说明 suhosin.ini 未正确解析

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