我试图在我的php中禁用某些功能时遇到了一些问题。 首先,我不是服务器的所有者,所以我无法更改主php.ini配置。但我试图用服务器所有者给我的指令来改变它。
这是我在我创建的php.ini文件中放入的行
disable_functions=eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
在我的phpinfo()
我可以看到本地值和主值,这些功能被禁用。
但我的问题从这里开始。
在同一个文件中我运行phpinfo()
我可以确认该功能应该被禁用,我运行eval()
和shell_exec()
以及eval()
仍然工作但shel_exec()
被禁用。
为什么我无法停用eval()
?
答案 0 :(得分:12)
eval
是一种语言结构,而不是一种功能,所以它无法被禁用。有关详细信息,请参阅http://www.php.net/eval。
答案 1 :(得分:0)
您可以尝试构建https://github.com/mk-j/PHP_diseval_extension以禁用eval。