由于 eval() 函数不能直接使用 disable_functions 配置禁用,见该帖讨论:
https://bbs.appnode.com/thread-1523.htm
而 Suhosin 这个扩展已经许久不更新,不支持 PHP 7。
于是我们找到了这个扩展,简单地禁用了 eval()、create_function() 以及正规表达式中的 /e 修饰符。
https://github.com/mk-j/PHP_diseval_extension
目前已打包发布了以下对PHP版本的支持:5.6、7.0、7.1、7.2、7.3
安装了这个扩展后,PHP 代码中使用 eval()、create_function() 或正规表达式中的 /e 修饰符,将返回如下报错:
Fatal error: DISEVAL - Use of eval is forbidden in /data/mystack/sites/test.com/www/index.php(3) : eval()'d code on line 1
请在 PHP 扩展列表中选择安装。