phpsafe 𝕏 GitHub
官方 CA 421DTkQ3TSG3n7F9SkNZj9NxvdFGbypwkctPd2uupump 仅此地址为官方地址。

用变量拼接 SQL(SQL 注入)

严重程度: 严重 CWE-89 OWASP A03:2021 Injection rule: sql

为什么危险

把输入拼接进 SQL,攻击者就能改写查询本身,读取、修改或删除数据库中的任何数据。预处理语句将查询与参数分开发送,输入永远不会变成 SQL。

✕ 有漏洞的写法
$id = $_GET['id'];
$rows = $db->query("SELECT * FROM users WHERE id = $id");
✓ 安全的写法
$stmt = $db->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$_GET['id']]);
$rows = $stmt->fetchAll();

修复方法

使用预处理语句:$db->prepare('... WHERE id = ?'),再 execute([$id])。

扫描我的代码

粘贴文件,PHP Safe 会指出所有符合此规则的代码行。

扫描我的代码 →