問題
SQLインジェクション対策として最も有効な手法はどれか。
選択肢
- 1ア HTTPSを使用する
- 2イ プレースホルダ(パラメータ化クエリ)を使用する
- 3ウ Cookieを暗号化する
- 4エ 画像をCDNから配信する
正解
2. イ プレースホルダ(パラメータ化クエリ)を使用する
詳しい解説を見る解説を閉じる
解説
SQLインジェクションは、入力欄に攻撃用のSQL断片を与え、アプリケーションが組み立てるSQL文の構造を改変してデータベースを不正に操作する攻撃である。最も有効な対策は、SQL文の雛形を先に確定させ、入力値を後から値として割り当てるプレースホルダ(パラメータ化クエリ、バインド機構)の使用であり、イが正解である。入力値は単なるデータとして扱われ、SQLの構文として解釈されなくなる。アのHTTPSは通信経路の暗号化であり、サーバ内で実行されるSQLの改変は防げない。ウのCookie暗号化やエのCDN配信も本攻撃とは無関係である。同じWebアプリケーション攻撃であるXSS(対策は出力時のエスケープ処理)との攻撃名と対策の対応を問う出題が頻出である。
一問一答
科目A 180問+科目B 60問