セキュリティ
SQLインジェクション攻撃の説明と対策の組み合わせとして、適切なものはどれか。
ア.攻撃:Webページに悪意あるスクリプトを埋め込む。
対策:入力値のエスケープ処理とコンテンツセキュリティポリシー(CSP)の設定。
イ.攻撃:偽サイトに誘導して認証情報を盗む。
対策:多要素認証の導入とフィッシング対策メールフィルタ。
ウ.攻撃:大量のパケットを送信してサーバを過負荷状態にする。
対策:ファイアウォールによるトラフィック制限とCDN利用。
エ.攻撃:入力フォームに不正なSQL文を混入させ、データベースを不正操作する。
対策:プリペアドステートメント(バインド変数)の使用と入力値検証。正解
解説
SQLインジェクションは「注文書に勝手に「全品無料」という条件を追加する」ような攻撃。プリペアドステートメントは「記入欄に壁を作って、条件の追加を物理的に不可能にする」対策です。
なぜ エ が正解か
SQLインジェクションは入力フォームに「' OR '1'='1」などのSQL断片を混入させ、本来意図しないSQL文を実行させる攻撃です。対策の最善手はプリペアドステートメント(バインド変数)で、SQL文の骨格を先にコンパイルし、後からデータを「変数」として埋め込むことでSQLとして解釈されないようにします。加えて入力値の型・長さ検証やエラーメッセージの非表示も有効です。
出典: AI生成問題(学習用)