IT PASSPORT
ITパスポートの問題解説
問題
Webアプリケーションの入力欄に不正なSQL文の断片を入力し、データベースを不正に操作したり、本来見られない情報を盗み出したりする攻撃はどれか。
- ア クロスサイトスクリプティング
- イ SQLインジェクション
- ウ DoS攻撃
- エ ブルートフォース攻撃
出典:オリジナル問題|参考範囲:IPA ITパスポート試験シラバス(最新版)、情報処理技術者試験の基礎知識
正解と解説
正解:SQLインジェクション
解説:多くのWebアプリは、利用者が入力した値を組み立ててデータベースへの問い合わせ(SQL)を実行します。このとき入力値をそのまま信用してしまうと、攻撃者が「' OR '1'='1」のようなSQLの断片を入力することで、本来の条件をすり抜けて全データを取得したり、テーブルを書き換えたりできてしまいます。これがSQLインジェクションです。対策としては、入力値を命令としてではなく単なるデータとして扱うプレースホルダ(バインド機構)の利用や、入力値の検証・エスケープ処理が有効です。
覚え方:「SQLを注入(インジェクション)する」と名前そのままで理解できます。入力欄=データベース、スクリプトを埋め込む=XSS、と攻撃の標的で区別すると混同しません。
他の選択肢はなぜ違う?
- アクロスサイトスクリプティングは、Webページに悪意あるスクリプトを埋め込み、閲覧者のブラウザ上で実行させる攻撃で、データベースを直接操作するSQLの不正利用とは仕組みが異なります。
- ウDoS攻撃は大量のアクセスや負荷を送りつけてサービスを停止させる攻撃で、SQL文を悪用してデータベースを操作するものではありません。
- エブルートフォース攻撃はパスワードなどを総当たりで試して突破する攻撃で、入力欄にSQL文を仕込むものではありません。
この問題について
IPAのITパスポート試験シラバスとIT基礎知識を参考に、Sikaku Master向けに独自作成した問題です。公式試験問題・過去問題の転載ではありません。
IPAの過去問題の転載ではなく、シラバス・公開情報に基づく独自問題として作成しています。