phpsafe 𝕏 GitHub
官方 CA 421DTkQ3TSG3n7F9SkNZj9NxvdFGbypwkctPd2uupump 仅此地址为官方地址。
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 之类的变量。

了解更多 →