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

eval() によるコード実行

深刻度: 致命的 CWE-95 OWASP A03:2021 Injection rule: eval

なぜ危険か

eval()は受け取った文字列をPHPコードとして実行します。その一部でもリクエスト由来なら、攻撃者がサーバー上で任意のコードを実行できます。

✕ 脆弱なコード
$result = eval('return ' . $_POST['formula'] . ';');
✓ 安全なコード
// Allow only known operations
$ops = [
    'add' => fn($a, $b) => $a + $b,
    'sub' => fn($a, $b) => $a - $b,
];
$op = $ops[$_POST['op'] ?? ''] ?? null;
$result = $op ? $op((float)$_POST['a'], (float)$_POST['b']) : null;

対策

文字列をコードとして実行しないでください。明示的な処理や対応表に置き換えましょう。

コードを検査する

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

コードを検査する →