对请求数据使用 extract()
为什么危险
extract() 会把每个请求字段变成变量,攻击者只需在表单中加一个字段就能覆盖 $is_admin 之类的变量。
extract($_POST);
if ($is_admin) {
show_admin_panel();
}
$name = trim((string)($_POST['name'] ?? ''));
$email = filter_var($_POST['email'] ?? '', FILTER_VALIDATE_EMAIL);
修复方法
逐个读取所需字段。extract() 允许攻击者覆盖变量。
扫描我的代码
扫描我的代码 →
粘贴文件,PHP Safe 会指出所有符合此规则的代码行。