2016-05-06 107 views
0

我在我專用的CentOS服務器上安裝了Suhosin。 centos6.7+php5.4.41+suhosin0.9.36Suhosin並禁用eval功能

我想啓用Suhosin的禁用eval函數。 我通過文件,並從我的理解去了,最好的情況是,在php.ini中添加此:

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

,但它不會阻止執行phpinfo()函數,<?php eval(phpinfo());?> EVAL。

真的希望有人能指出我的錯誤。

回答

1

您的示例執行phpinfo(),然後嘗試評估輸出。鑑於您的配置下面的例子將被封鎖了Suhosin:

eval("phpinfo();");

請考慮使用白名單,而不是黑名單,如果適用。從安全角度來看,最好允許有限的一組功能,而不是猜測所有不好的功能。

另請注意,該eval本身不是一個函數,不能被disable_functions和朋友阻止。 Suhosin爲此提供了suhosin.executor.disable_eval

+0

非常感謝! – jf2000

0

打開php.ini文件並查找disable_functions。寫/登記你想禁用的功能。例如:disable_functions=passthru,exec,system,popen,eval

+0

我想禁用eval函數,不要禁用函數 – jf2000