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 服务器连接。

危险等级:中

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

时间: 2024-08-05 23:41:17

php禁用一些危险函数的相关文章

Apache降权和禁用PHP危险函数

测试环境: Windows Server 2003 + phpstudy 首先在win2003里运行phpstudy,这里注意需要选择应用系统服务模式,应用之后重启phpstudy. 打开系统服务(开始>>管理工具>>服务),出现Apache2a这个服务就成功了. 然后打开我们上传的PHP大马进行测试,正常情况下的权限为administrator. 环境测试正常,开始我们今天的学习目的.系统的权限分为system.admin和user权限.前两个都拥有较高权限,因为我们需要进行降权

以下PHP危险函数需要被禁用哦

以下PHP危险函数 需要被禁用哦 phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块.WEB 环境等信息. 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等). 危险等级:高 system() 功能描述:允许执行一个外部程序并回显输出,类似于 passthru(). 危险等级:高 chroot() 功能描述:可改变当前 PH

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

一些需要禁用的PHP危险函数(disable_functions) 有时候为了安全我们需要禁掉一些PHP危险函数,整理如下需要的朋友可以参考下 phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块.WEB 环境等信息. 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等). 危险等级:高 system() 功能描述:允许执行一个

宝塔面板 – NGINX、PHP版本号隐藏/危险函数的禁用

宝塔面板对于 PHP 的管理确实很方便,软件商店里可以安装各种版本,还可以多版本共存,这个估计是 lnmp.oneinstack 这些命令脚本不能比拟的.但是,宝塔面板安装的 PHP 没有默认隐藏版本号,比如说这样的: 网络技术应用研究公司 W3Techs 近日表示,根据所有网站使用 PHP 版本的情况,从 2019 年 1 月 1 日起,有近 62% 的网站将会因为无法获得安全更新,而受到恶意攻击. 根据 W3Techs 的调查,从本月 15 日开始,其研究的网站样本中使用的 PHP 的比例高

PHP 危险函数(转载)

有时候为了安全我们需要禁掉一些PHP危险函数,整理如下需要的朋友可以参考下 phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块.WEB 环境等信息. 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等). 危险等级:高 system() 功能描述:允许执行一个外部程序并回显输出,类似于 passthru(). 危险等级:高 c

WordPress ”无法发送电子邮件,可能原因:您的主机禁用了mail()函数“的解决办法

WordPress网站中出现 "无法发送电子邮件,可能原因:您的主机禁用了mail()函数"的情况一般都是因为所在主机环境不支持在线邮件收发功能导致,如果不支持的话,那么像类似 Newsletter.Contact Form 7 等需要用到邮件收发功能的插件就将无法使用.不过,对于这种问题,绝大多数的主机或服务器还是可以解决的,如果以下方法都尝试后还是无法解决邮件收发功能,那么就只能联系你的空间服务商来解决了. 检查空间是否支持 邮件收发 功能的方法 1. 非登录状态,访问网站后台登录

PHP危险函数的持续学习

记录下遇到过的PHP危险函数 0x01 escapeshellarg()与escapeshellsmd()联合 先给出官方的定义: escapeshellarg ( string $arg ) : string 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的.对于用户输入的部分参数就应该使用这个函数.shell 函数包含 exec(), system() 执行运算符 . 该函数单独使用的时候,是安全的,但是

【干货】PHP常见危险函数

passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等). 危险等级:高 assert() 功能描述:如果按照默认值来,在程序的运行过程中调用assert()来进行判断表达式,遇到false时程序也是会继续执行的,跟eval()类似,不过eval($code_str)只是执行符合php编码规范的$code_str.assert的用法却更详细一点. 危险等级:高

工作笔记04----------禁用PHP危险函数

禁用PHP函数1.禁用PHP不安全函数:      vim /usr/local/php/etc/php.ini      disable_functions = system,exec,shell_exec,passthru,proc_open,proc_close, proc_get_status,checkdnsrr,getmxrr      disable_functions = getservbyport, syslog,popen,show_source,highlight_file