可以安全禁用的PHP函數之disable_functions功能詳解


最近發現phpmyadmin不正常,仔細研究,發現是修改disable_function引起的問題。

仔細分析了下disable_function的參數 ,發現原來是因為opendir,readdir,dir,chdir這4個參數引起的

禁用opendir報錯如下:

phpmyadmin就會出現如下錯誤
phpMyAdmin-ERROR: cannot open themes folder: ./themes
Default theme pmahomme not found!
Theme original not found!
Theme not found!

  

但是phpspy就不能列出其他虛擬主機的目錄 官方解釋:http://cn.php.net/manual/zh/function.opendir.php opendir:打開目錄句柄 加上readdir phpmyadmin首頁能打開,但是不能登陸,502 Bad Gateway phpspy此時不能列出其他虛擬主機目錄 官方解釋:http://cn.php.net/manual/zh/function.readdir.php readdir — 從目錄句柄中讀取條目,返回目錄中下一個文件的文件名 最后總結出比較安全的php.ini的disable_functions如下(服務器沒用到采集):
disable_functions = exec,passthru,popen,proc_open,shell_exec,system,phpinfo,assert,chroot,getcwd,scandir,unlink,delete,rmdir,rename,chgrp,chmod,chown,fopen,copy,mkdir,file,file_get_contents,fputs,fwrite,dir

  

禁用這些函數,網站和phpmyadmin都正常,而且不能上傳文件 利用webshell也不能查看服務器上的文件,不能刪除或者修改 唯一的缺點:能夠查看其他虛擬主機的目錄,但是僅僅只能看看,做不了什么事情 如果服務器用到了采集,需要啟用unlink和fopen,列表如下:
disable_functions = exec,passthru,popen,proc_open,shell_exec,system,phpinfo,assert,chroot,getcwd,scandir,delete,rmdir,rename,chgrp,chmod,chown,copy,mkdir,file,file_get_contents,fputs,fwrite,dir

  

unlink官方解釋為:http://cn.php.net/manual/zh/function.unlink.php fopen官方解釋為:http://cn.php.net/manual/zh/function.fopen.php 如果需要用到采集,需要啟用這幾個函數:
file_get_contents,fputs,fwrite,dir

  

禁用的函數列表為:
disable_functions = exec,passthru,popen,proc_open,shell_exec,system,phpinfo,assert,chroot,getcwd,scandir,delete,rmdir,rename,chgrp,chmod,chown,copy,mkdir,file

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM