使用mysql_query()等函数直接拼接SQL语句时,未对用户输入进行过滤处理,导致攻击者可执行恶意SQL命令。
include()、require()等函数动态包含文件时,未验证文件路径参数,可能包含恶意文件。
system()、exec()等函数执行系统命令时,未对参数进行转义处理,导致任意命令执行。
echo、print等输出函数直接输出未过滤的用户输入,导致恶意脚本执行。
使用filter_var()、htmlspecialchars()等函数对所有用户输入进行严格过滤。
推荐使用PDO或mysqli预处理语句替代直接SQL拼接。
使用basename()处理路径,禁用动态包含文件或严格限制包含范围。
生产环境设置display_errors=Off,使用自定义错误处理器。
如用escapeshellarg()替代直接命令执行,用json_encode()替代serialize()。
1. PHPStan - 静态代码分析工具
2. RIPS - 专业PHP漏洞扫描器
3. SonarQube - 代码质量检测平台