高度試験午前I暗記無料で始める

SQLインジェクションとは?えすきゅーえるいんじぇくしょん

SQLインジェクションとは、利用者の入力欄にSQL文の断片を紛れ込ませ、組み立てられた問合せ文の意味そのものを変えてしまう攻撃。認証の回避、他人のデータの読み出し、テーブルの改ざんや削除まで行える。原因は入力の中身ではなく、値と命令を文字列連結で混ぜているという作り方の側にある。

最終更新:2026-10-07

試験情報

高度試験・午前I(全区分共通)の過去問では3問の解説で触れられています(2016年度〜2019年度)。

高度試験・午前I(全区分共通)の頻出用語/午前I(全区分共通)

この語が出る過去問を解く →

背景

Webアプリは画面の入力値をSQL文へ埋め込んで組み立てる。文字列として連結する限り、値に含まれる引用符や記号がそのまま命令として解釈され得る。この「値と命令の境界が消える」構造欠陥はOSコマンドインジェクションなどと共通で、午前Iでも根本対策を選ばせる形で繰り返し出題される。

具体例

根本対策はプレースホルダ(バインド機構)で、SQL文の骨格を先に確定させてから値を別枠で渡す。PHPのPDOやJavaのPreparedStatementがその実装にあたり、値に何が来ても命令としては解釈されない。

試験での引っ掛け

「特殊文字を除去する入力チェック」「エラーメッセージを隠す」は補助的な対策にとどまる。WAF(Web Application Firewall)の導入も緩和策で、根本対策はプレースホルダの利用であると押さえる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 3問の解説で触れられる(2016年度〜2019年度)
  • 分野:午前I(全区分共通)
  • 「特殊文字を除去する入力チェック」「エラーメッセージを隠す」は補助的な対策にとどまる。