php禁用一些重要功能

passthru()
功能叙述性说明:我们同意将运行外部程序和回音输出。分类似至 exec()。


临界水平:高

exec()
功能叙述性说明:同意运行外部程序(例如 UNIX Shell 要么 CMD 命令等)。
危急等级:高

assert()
功能描写叙述:假设依照默认值来。在程序的运行过程中调用assert()来进行推断表达式,遇到false时程序也是会继续运行的。跟eval()类似。只是eval($code_str)仅仅是运行符合php编码规范的$code_str。assert的使用方法却更具体一点。
危急等级:高

system()
功能描写叙述:同意运行一个外部程序并回显输出。类似于 passthru()。
危急等级:高

chroot()
功能描写叙述:可改变当前 PHP 进程的工作根文件夹。仅当系统支持 CLI 模式PHP 时才干工作,且该函数不适用于 Windows 系统。
危急等级:高

chgrp()
功能描写叙述:改变文件或文件夹所属的用户组。


危急等级:高

chown()
功能描写叙述:改变文件或文件夹的全部者。
危急等级:高

shell_exec()
功能描写叙述:通过 Shell 运行命令。并将运行结果作为字符串返回。


危急等级:高

proc_open()
功能描写叙述:运行一个命令并打开文件指针用于读取以及写入。
危急等级:高

ini_restore()
功能描写叙述:可用于恢复 PHP 环境配置參数到其初始值。


危急等级:高

dl()
功能描写叙述:在 PHP 进行执行过程其中(而非启动时)载入一个 PHP 外部模块。
危急等级:高

readlink()
功能描写叙述:返回符号连接指向的目标文件内容。
危急等级:中

symlink()
功能描写叙述:在 UNIX 系统中建立一个符号链接。
危急等级:高

popen()
功能描写叙述:可通过 popen() 的參数传递一条命令,并对 popen() 所打开的文件进行运行。


危急等级:高

stream_socket_server()
功能描写叙述:建立一个 Internet 或 UNIX server连接。
危急等级:中

pfsockopen()
功能描写叙述:建立一个 Internet 或 UNIX 域的 socket 持久连接。


危急等级:高

putenv()
功能描写叙述:用于在 PHP 执行时改变系统字符集环境。在低于 5.2.6 版本号的 PHP 中,可利用该函数改动系统字符集环境后,利用 sendmail 指令发送特殊參数执行系统 SHELL 命令。


危急等级:高

改动方法:
打开/etc/php.ini文件,
查找到 disable_functions ,改动为:disable_functions=passthru,exec,assert,system,chroot,chgrp,chown,shell_exec,proc_open,ini_restore,dl,readlink,symlink,popen,stream_socket_server,pfsockopen,putenv
哦。eval禁用不了。须要借助:php Suhosin。

禁用的方法能够依据自己的环境来酌情加入,事实上curl_exec(),fopen(),file_get_contents()等都是非常危急的,另一些文件夹浏览的方法,可是实际项目中要用到,所以不能禁用了。
nginx的话,能够限制一些静态文件路径不能运行php。例如以下(文件夹改成自己的静态文件文件夹):

  1. location ~ /(style|html|cache|config|js|css|image|log|images|uploads|upload|attachments|templets)/.*\.(php|php5)?

    $ {

  2. deny all;
  3. }

这样安全性也会更好一些。然后兴许会多补充一些,工作也忙。

很多其它:http://www.webyang.net/Html/web/article_125.html

版权声明:本文博主原创文章,博客,未经同意不得转载。

posted @ 2015-10-05 13:26  mengfanrong  阅读(361)  评论(0编辑  收藏  举报