本文主要介绍PHP危险函数的禁用,并列举了一些感兴趣的同学可以学习的敏感函数。
error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全注意:在PHP的某些版本中,可以使用error_log()绕过PHP安全模式,执行任意命令。
危险等级:低
phpinfo()
功能描述:输出PHP环境信息,相关模块,WEB环境等信息。
危险等级:中等
scandir()
列出指定路径中的文件和目录。
禁用建议:不建议禁用,因为需要调用thinkphp框架。
危险等级:中等
syslog()
功能描述:可以调用UNIX系统的系统级syslog()函数。
危险等级:中等
readlink()
函数描述:返回符号连接指向的目标文件的内容。
危险等级:中等
stream_socket_server()
功能描述:建立互联网或UNIX服务器连接。
禁用建议:不建议禁用,需要使用workerman框架。
危险等级:中等
passthru()
功能描述:允许执行一个外部程序,唐山网页制作序列,回显输出,类似exec()。
危险等级:高
exec()
功能描述:允许执行一个外部程序(如UNIX Shell或CMD命令)。
危险等级:高
system()
功能描述:允许执行外部程序并回显输出,类似passthru()。
危险等级:高
chroot()
功能描述:可以改变当前PHP进程的工作根目录,只有系统支持CLI模式PHP才能工作,此功能不适用于Windows系统。
危险等级:高
chgrp()
功能描述:更改文件或目录所属的用户组。
危险等级:高
chown()
功能描述:改变文件或目录的所有者。
危险等级:高
shell_exec()
功能描述:通过Shell执行命令,执行结果以字符串形式返回。
危险等级:高
proc_open()
功能描述:执行一个命令,打开文件指针进行读写。
危险等级:高
proc_get_status()
函数描述:获取用proc_open()打开的进程的信息。
危险等级:高
ini_set()
功能描述:可用于修改和设置PHP环境配置参数。
禁用建议:不建议禁用,因为需要使用许多程序,例如:
1?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
2ini_set('error_reporting ',' E _ ALL ~ E _ NOTICE ');//设置PHP的报错级别,返回当前级别。