Webアプリケーションの入力欄に、データベースを操作する命令文の一部を入力して、不正にデータを取得したり改ざんしたりする攻撃はどれか。
- ①DoS攻撃
- ②クロスサイトスクリプティング
- ③ブルートフォース攻撃
- ④SQLインジェクション
答えと解説を見る
SQLインジェクションは、Webアプリケーションの入力欄などに、SQL(データベースを操作する言語)の命令文の一部を入力し、アプリケーションが組み立てるSQL文の意味を書き換えて、データベースの情報を不正に取得・改ざん・削除する攻撃です。入力された値をSQL文に直接つなげて組み立てているアプリケーションが狙われます。対策として、プレースホルダ(バインド機構)を使ってSQL文を組み立てる方法が有効です。
他の選択肢が不適切な理由
・クロスサイトスクリプティング:Webページに悪意のあるスクリプトを埋め込み、閲覧者のブラウザ上で実行させる攻撃です。
・DoS攻撃:大量のアクセスなどでサーバに負荷をかけ、サービスを提供できない状態にする攻撃です。
・ブルートフォース攻撃:パスワードとして考えられる全ての文字の組合せを、総当たりで試す攻撃です。
覚え方のポイント
「インジェクション=注入」。SQLの命令を注入してデータベースを操る攻撃です。「データベースが狙われたらSQLインジェクション、ブラウザでスクリプトが動いたらXSS」と区別しましょう。