我在我的专用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());?>
。
真的希望有人可以指出我的错误。
答案 0 :(得分:1)
您的示例执行phpinfo(),然后尝试评估输出。根据您的配置,以下示例将被suhosin阻止:
eval("phpinfo();");
如果适用,请考虑使用白名单而不是黑名单。从安全的角度来看,最好是允许一组有限的功能而不是猜测所有不良功能。
另请注意,eval本身不是一个功能,不能被disable_functions和朋友阻止。为此,Suhosin提供suhosin.executor.disable_eval
。
答案 1 :(得分:0)
打开php.ini
文件,然后查找disable_functions
。写入/登记要禁用的功能。例如:disable_functions=passthru,exec,system,popen,eval