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

preg_replace 使用 /e 修饰符

严重程度: 严重 CWE-95 OWASP A03:2021 Injection rule: preg_e

为什么危险

/e 修饰符会把替换内容当作 PHP 代码执行。它已在 PHP 7 中移除,仍在使用的代码在旧服务器上很危险,在新服务器上则无法运行。

✕ 有漏洞的写法
$out = preg_replace('/(\w+)/e', 'strtoupper("$1")', $text);
✓ 安全的写法
$out = preg_replace_callback('/(\w+)/', fn($m) => strtoupper($m[1]), $text);

修复方法

/e 会执行代码,请改用 preg_replace_callback()。

扫描我的代码

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

扫描我的代码 →