对不可信数据使用 unserialize()
为什么危险
unserialize() 可以创建任意对象,攻击者会串联现有类(gadget 链)来删除文件或执行代码。JSON 只会生成普通数据。
$prefs = unserialize($_COOKIE['prefs']);
$prefs = json_decode($_COOKIE['prefs'] ?? '{}', true) ?: [];
修复方法
改用 json_decode()。必须使用时传入 ['allowed_classes' => false]。
扫描我的代码
扫描我的代码 →
粘贴文件,PHP Safe 会指出所有符合此规则的代码行。