メインコンテンツへ
セキュリティ

クロスサイトスクリプティング(XSS)に関する記述として、適切なものはどれか。

ア.攻撃者がWebアプリのデータベースに不正なSQL文を注入し、情報を窃取する攻撃である。
イ.攻撃者がネットワークの経路上でパケットを傍受し、通信内容を盗み見る攻撃である。
ウ.ログイン済みの被害者を罠サイトに誘導し、被害者の権限で不正なリクエストを正規サイトに送信させる攻撃である。
エ.攻撃者が正規サイトに悪意あるスクリプトを埋め込み、そのサイトを閲覧した被害者のブラウザ上でスクリプトを実行させる攻撃である。正解

解説

XSSは「公掲示板に毒入りポスターを貼る」攻撃。正規の掲示板(Webサイト)に貼られたポスター(スクリプト)を見た人のブラウザが毒(悪意ある処理)にやられます。サイト自体は被害者でもあります。

なぜ エ が正解か

XSSは攻撃者が入力フィールドやURLパラメータを通じてスクリプト(JavaScriptなど)をWebサイトに注入し、他のユーザがそのページを閲覧したときにブラウザ上でスクリプトが実行される攻撃です。Cookie窃取・セッションハイジャック・フィッシングページの表示などに悪用されます。対策は出力時のHTMLエスケープと、CSP(Content Security Policy)ヘッダの設定です。

なぜ ア は間違いか

WebアプリのデータベースにSQL文を注入するのはSQLインジェクション攻撃の説明です。XSSとSQLインジェクションはどちらも「注入(インジェクション)系」攻撃ですが、狙う場所が「ブラウザ(クライアント)」か「データベース(サーバ)」かで異なります。

なぜ イ は間違いか

パケットを傍受して通信内容を盗む攻撃はパケットスニッフィング(盗聴)です。ネットワーク層の攻撃であり、Webアプリケーション層で発生するXSSとは全く異なります。

なぜ ウ は間違いか

ログイン済みユーザを利用して正規サイトに不正リクエストを送る攻撃はCSRF(クロスサイトリクエストフォージェリ)の説明です。XSSとCSRFは名前が似ていて混同しやすいですが、XSSは「ブラウザでスクリプトを動かす」、CSRFは「被害者の権限でリクエストを送る」点が違います。

出典: AI生成問題(学習用)