5

我在 ubuntu12.04 上运行 PHP5.6,因为 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?

4

1 回答 1

1

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

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

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

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

于 2015-03-16T10:23:41.430 回答