禁用eval函数

(PHP 4, PHP 5, PHP 7)

无论是linux服务器还是windows服务器,eval命令是非常危险的

一、如何禁用eval命令

在php.ini中这样设置disable_functions =eval是无法禁用eval的,根据php手册说明,eval是一个语言构造器而不是一个函数。如果要禁用eval,则需要第三方扩展,使用Suhosin

  • linux下suhosin的安装:
wget http://download.suhosin.org/suhosin-0.9.23.tgz
tar zxvfsuhosin-0.9.23.tgz
cd suhosin-0.9.23
/usr/local/php/bin/phpize //这一步不能省
./configure --with-php-config=/usr/local/php/bin/php-config    //必须在这儿注明php-config所在的绝对路径。
make
make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

然后在php.ini中增加下列语句。

extension=suhosin.so
suhosin.executor.disable_eval = on

你可能感兴趣的:(PHP)