🛡️ 主な対策
① プレースホルダ(最重要)
SQL文の中に入力値を直接埋め込まず、「?」などの仮置きを使って後から値を渡す。SQL命令と入力値が分離されるため、SQL命令として解釈されない。
WHERE id = ? → 入力値 'OR '1'='1 は「文字列」としか扱われない
② 入力値のエスケープ処理
シングルクォートなどSQLの特殊文字を無害化する。プレースホルダの補助として使う。
③ WAF(Webアプリケーションファイアウォール)
不正なパターンの通信を検知・遮断。プレースホルダと組み合わせて多層防御。