一些需要禁用的PHP危险函数(disable_functions)


Posted in PHP onFebruary 23, 2012

phpinfo()
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。
危险等级:中

passthru()
功能描述:允许执行一个外部程序并回显输出,类似于 exec()。
危险等级:高

exec()
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。
危险等级:高

system()
功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。
危险等级:高

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

scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中

chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高

chown()
功能描述:改变文件或目录的所有者。
危险等级:高

shell_exec()
功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。
危险等级:高

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

proc_get_status()
功能描述:获取使用 proc_open() 所打开进程的信息。
危险等级:高

error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全备注:在某些版本的 PHP 中,可使用 error_log() 绕过 PHP safe mode,
执行任意命令。
危险等级:低

ini_alter()
功能描述:是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。
具体参见 ini_set()。
危险等级:高

ini_set()
功能描述:可用于修改、设置 PHP 环境配置参数。
危险等级:高

ini_restore()
功能描述:可用于恢复 PHP 环境配置参数到其初始值。
危险等级:高

dl()
功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。
危险等级:高

pfsockopen()
功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。
危险等级:高

syslog()
功能描述:可调用 UNIX 系统的系统层 syslog() 函数。
危险等级:中

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

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

popen()
功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。
危险等级:高

stream_socket_server()
功能描述:建立一个 Internet 或 UNIX 服务器连接。
危险等级:中

putenv()
功能描述:用于在 PHP 运行时改变系统字符集环境。在低于 5.2.6 版本的 PHP 中,可利用该函数
修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。
危险等级:高

禁用方法如下:
打开/etc/php.ini文件,
查找到 disable_functions ,添加需禁用的函数名,如下:
phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

PHP 相关文章推荐
由php的call_user_func传reference引发的思考
Jul 23 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
Symfony控制层深入详解
Mar 17 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
Nov 14 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
Laravel如何友好的修改.env配置文件详解
Jun 07 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
PHP面向对象法则
Feb 23 #PHP
优化PHP程序的方法小结
Feb 23 #PHP
数据库中排序的对比及使用条件详解
Feb 23 #PHP
PHP中几个常用的魔术常量
Feb 23 #PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 #PHP
php tp验证表单与自动填充函数代码
Feb 22 #PHP
PHP 设计模式之观察者模式介绍
Feb 22 #PHP
You might like
javascript hashtable实现代码
2009/10/13 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
JS实现图片放大镜效果的方法
2015/02/27 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
python生成圆形图片的方法
2020/03/25 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
Django 路由系统URLconf的使用
2018/10/11 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
大学运动会通讯稿
2014/01/28 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
校车安全责任书
2014/08/25 职场文书
四风问题查摆材料
2014/08/25 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
教你如何用cmd快速登录服务器
2022/06/10 Servers