如何关闭危险函数

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

memset函数是C语言中的一个函数,用于将一块内存区域的值设置为指定的值。它的原型如下: ```c void *memset(void *s, int c, size_t n); ``` 其中,`s`是指向要设置的内存区域的指针,`c`是要设置的值,`n`是要设置的字节数。 尽管memset函数在某些情况下非常有用,但它也存在一些潜在的危险。以下是一些可能的危险: 1. 内存越界:如果使用memset函数时没有正确计算要设置的内存区域的大小,就可能导致内存越界。这可能会破坏其他变量或数据结构,导致程序崩溃或产生不可预测的行为。 2. 字节对齐问题:memset函数是按字节进行设置的,如果要设置的内存区域包含非字符类型的数据(如整数、浮点数等),则可能会导致字节对齐问题。这可能会影响程序的性能或产生未定义的行为。 3. 安全性问题:由于memset函数是直接操作内存的,如果在使用时没有进行正确的输入验证和边界检查,可能会导致缓冲区溢出或其他安全漏洞。攻击者可以利用这些漏洞来执行恶意代码或获取敏感信息。 为了避免这些危险,使用memset函数时应该注意以下几点: 1. 确保计算要设置的内存区域的大小是正确的,避免内存越界。 2. 对于非字符类型的数据,应该使用适当的类型转换来避免字节对齐问题。 3. 在使用memset函数时,应该进行输入验证和边界检查,确保不会发生缓冲区溢出或其他安全漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值