0

我已经在我的专用 CentOS 服务器上安装了 Suhosin。centos6.7+php5.4.41+suhosin0.9.36

我想启用 Suhosin 的禁用 eval 功能。我浏览了文档,据我了解,最好的方案是在 php.ini 中添加它:

[suhosin]
suhosin.executor.eval.blacklist= phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown

但它不会阻止 eval 执行 phpinfo(), <?php eval(phpinfo());?>.

真的希望有人能指出我的错误。

4

2 回答 2

1

您的示例执行 phpinfo(),然后尝试评估输出。鉴于您的配置,以下示例将被 suhosin 阻止:

eval("phpinfo();");

如果适用,请考虑使用白名单而不是黑名单。从安全的角度来看,最好总是允许一组有限的函数,而不是猜测所有的坏函数。

另请注意, eval 本身不是一个函数,并且不能被 disable_functions 和朋友阻止。Suhosin 提供suhosin.executor.disable_eval了这个目的。

于 2016-05-11T07:11:56.167 回答
0

打开php.ini文件并查找disable_functions. 写入/登记您要禁用的功能。例如:disable_functions=passthru,exec,system,popen,eval

于 2016-05-06T02:22:58.570 回答