リクエストデータへの 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() は変数の上書きを許します。
コードを検査する
コードを検査する →
ファイルを貼り付けると、このルールに該当する行をすべて示します。