CWE · OWASP Top 10:2021
PHP 安全规则
PHP Safe 扫描器使用的 18 条规则。每条规则都附有漏洞示例、安全修复方法以及 CWE 和 OWASP 编号。
注入 8
严重
CWE-89
用变量拼接 SQL(SQL 注入)
把输入拼接进 SQL,攻击者就能改写查询本身,读取、修改或删除数据库中的任何数据。预处理语句将查询与参数分开发送,输入永远不会变成 SQL。
了解更多 →
严重
CWE-78
执行 Shell 命令
传给 Shell 的输入可以用 ; 或 | 等字符追加命令,让攻击者控制服务器。请严格校验输入,并对每个参数进行转义。
了解更多 →
严重
CWE-95
使用 eval() 执行代码
eval() 会执行收到的任何 PHP 代码。只要字符串中有一部分来自请求,攻击者就能在你的服务器上运行自己的代码。
了解更多 →
严重
CWE-95
preg_replace 使用 /e 修饰符
/e 修饰符会把替换内容当作 PHP 代码执行。它已在 PHP 7 中移除,仍在使用的代码在旧服务器上很危险,在新服务器上则无法运行。
了解更多 →
严重
CWE-98
根据用户输入包含文件
用请求数据拼接 include 路径,攻击者就能加载系统文件、藏有 PHP 的上传图片或远程代码,这是服务器被完全接管的最快途径之一。
了解更多 →
中
CWE-98
用变量构造包含路径
用变量构造的 include 路径只有在变量绝不包含用户输入时才安全。值往往来自上游代码中的请求,务必确认。
了解更多 →
严重
CWE-502
对不可信数据使用 unserialize()
unserialize() 可以创建任意对象,攻击者会串联现有类(gadget 链)来删除文件或执行代码。JSON 只会生成普通数据。
了解更多 →
高
CWE-621
对请求数据使用 extract()
extract() 会把每个请求字段变成变量,攻击者只需在表单中加一个字段就能覆盖 $is_admin 之类的变量。
了解更多 →