web服务器中需要禁用的php危险函数
在 Web 服务器配置中,禁用危险的 PHP 函数是增强服务器安全性的重要措施。这些函数如果被恶意利用,可能导致文件操作、命令执行、信息泄露等安全风险。请修改php.ini文件,禁止PHP危险函数,尤其禁止chmod、chown、chgrp、exec、shell_exec这几个危险函数。
一般情况下需要禁用的函数有:
1. 命令执行相关函数
这类函数允许 PHP 执行系统命令,恶意用户可能通过它们控制服务器:
exec():执行外部程序
shell_exec():通过 shell 执行命令并返回完整输出
system():执行外部程序并显示输出
passthru():执行外部程序并直接输出结果
proc_open():打开进程文件指针
popen():打开进程文件指针
escapeshellcmd():虽用于转义,但不当使用仍有风险
pcntl_exec():在当前进程空间执行指定程序
2. 文件操作相关函数
可能被用于读写敏感文件、遍历目录或删除文件:
fopen():打开文件(若允许写入则风险较高)
file_get_contents()/file_put_contents():读写文件内容
unlink():删除文件
rmdir():删除目录
mkdir():创建目录
rename():重命名文件 / 目录
copy():复制文件
chmod():修改文件权限
chown():修改文件所有者
symlink():创建符号链接(可能导致路径遍历)
link():创建硬链接
readlink():读取符号链接目标
realpath():获取绝对路径(可能泄露服务器结构)
3. 代码注入 / 执行相关函数
可能被用于执行恶意代码:
eval():将字符串作为 PHP 代码执行(高危)
assert():检查断言是否为真,可执行代码
call_user_func()/call_user_func_array():调用回调函数(若参数可控则有风险)
create_function():创建匿名函数(可能注入代码)
preg_replace()(配合/e修饰符):执行替换的代码(PHP 7.0 后已移除/e修饰符)
4. 信息泄露相关函数
可能泄露服务器配置、环境变量等敏感信息:
phpinfo():输出 PHP 配置信息(包含服务器细节)
getenv():获取环境变量
get_current_user():获取当前 PHP 运行的用户名
getmyuid()/getmypid():获取用户 ID / 进程 ID
php_uname():获取系统信息
5. 其他危险函数
dl():动态加载 PHP 扩展(可能加载恶意模块)
putenv():设置环境变量
ini_set()/ini_get():修改 / 获取 PHP 配置(可能绕过限制)
session_destroy()/session_regenerate_id():会话相关操作(若使用不当)
posix_kill():向进程发送信号
proc_nice()/proc_terminate():修改进程优先级 / 终止进程
上一篇:Linux操作系统常用工具:Xshell