phpsafe 𝕏 GitHub
公式CA 421DTkQ3TSG3n7F9SkNZj9NxvdFGbypwkctPd2uupump 公式アドレスはこちらのみです。

変数で作ったinclude パス

深刻度: 中 CWE-98 OWASP A03:2021 Injection rule: include_var

なぜ危険か

変数で作ったincludeパスは、その変数にユーザー入力が絶対に入らない場合だけ安全です。上流のコードでリクエスト値が入っていることが多いので確認しましょう。

✕ 脆弱なコード
include $template;
✓ 安全なコード
$allowed = ['list', 'detail'];
if (!in_array($template, $allowed, true)) {
    $template = 'list';
}
include __DIR__ . '/templates/' . $template . '.php';

対策

変数に既知のファイル名しか入らないか確認し、__DIR__ と固定パスを使いましょう。

コードを検査する

ファイルを貼り付けると、このルールに該当する行をすべて示します。

コードを検査する →