用变量构造包含路径
为什么危险
用变量构造的 include 路径只有在变量绝不包含用户输入时才安全。值往往来自上游代码中的请求,务必确认。
include $template;
$allowed = ['list', 'detail'];
if (!in_array($template, $allowed, true)) {
$template = 'list';
}
include __DIR__ . '/templates/' . $template . '.php';
修复方法
确保变量只能是已知文件名,建议使用 __DIR__ 加固定路径。
扫描我的代码
扫描我的代码 →
粘贴文件,PHP Safe 会指出所有符合此规则的代码行。