這次我們來說如何禁止php代碼中執(zhí)行eval函數(shù),本來以為直接修改php.ini中的disable_function即可~
但現(xiàn)實(shí)往往并不是那么如意,查了一下GG,發(fā)現(xiàn)原來eval并非函數(shù),而是php底層提供的一種特性。
幸好有前輩提供了php擴(kuò)展來禁用萬惡的eval: suhosin
一開始發(fā)現(xiàn)是需要給php打補(bǔ)丁,我是拒絕的,但確實(shí)沒有找到更好的方法。不過實(shí)際安裝下來,真的很方便:
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl
cd /usr/local/src
wget http://download.suhosin.org/suhosin-對(duì)應(yīng)的版本.tgz
tar zxvf suhosin-對(duì)應(yīng)的版本.tgz
cd suhosin-對(duì)應(yīng)的版本
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config
make make install
編譯完后會(huì)提示你庫(kù)文件的位置,例如: /usr/lib64/php/modules
我們只需要在php.ini中增加對(duì)應(yīng)的擴(kuò)展即可:
extension=/usr/lib64/php/modules/suhosin.so
suhosin.executor.disable_eval=On
重啟php-fpm
進(jìn)程后,就可以在phpinfo中看到suhosin擴(kuò)展已經(jīng)裝好了~
仔細(xì)看增加的配置項(xiàng),其實(shí)很多控制的點(diǎn),得慢慢研究啊~
總結(jié)
以上所述是小編給大家介紹的php5.x禁用eval的操作方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- php中通過eval實(shí)現(xiàn)字符串格式的計(jì)算公式
- 淺談PHP eval()函數(shù)定義和用法
- php eval函數(shù)一句話木馬代碼
- PHP函數(shù)eval()介紹和使用示例
- php中eval函數(shù)的危害與正確禁用方法
- PHP eval函數(shù)使用介紹
- php eval函數(shù)用法 PHP中eval()函數(shù)小技巧
- php eval函數(shù)用法總結(jié)
- php異常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()''d code error