PHP 中的危险函数全解析
在编译
时,如无特殊需要,一定禁止编译生成 CLI 命令行模式的 PHP 解析支持。可在
编译时使用
–disable-CLI。一旦编译生成 CLI 模式的 PHP,则可能会被入侵者利用该程序建
立一个
WEB Shell 后门进程或通过 PHP 执行任意代码。
phpinfo()
功能描述:输出
PHP 环境信息以及相关的模块、WEB 环境等信息。
危险等级:中
passthru()
功能描述:允许执行一个外部程序并回显输出,类似于
exec()。
危险等级:高
exec()
功能描述:允许执行一个外部程序(如
UNIX Shell 或 CMD 命令等)。
危险等级:高
system()
功能描述:允许执行一个外部程序并回显输出,类似于
passthru()。
危险等级:高
chroot()
功能描述:可改变当前
PHP 进程的工作根目录,仅当系统支持 CLI 模式 PHP 时才能工作,
且该函数不适用于
Windows 系统。
危险等级:高
scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中
chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高
chown()
功能描述:改变文件或目录的所有者。
危险等级:高
shell_exec()
功能描述:通过
Shell 执行命令,并将执行结果作为字符串返回。
危险等级:高
oc_open()
功能描述:执行一个命令并打开文件指针用于读取以及写入。
危险等级:高
proc_get_status()
功能描述:获取使用
proc_open() 所打开进程的信息。
危险等级:高
error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全备注:在某些版本的
PHP 中,可使用 error_log() 绕过 PHP safe mode,
执行任意命令。
危险等级:低
ini_alter()