クロスサイトスクリプティング(XSS)とは?くろすさいとすくりぷてぃんぐ
クロスサイトスクリプティング(XSS)とは、利用者由来の文字列がそのままHTMLやJavaScriptとして出力される欠陥を突き、被害者のブラウザ上で攻撃者のスクリプトを実行させる攻撃。実行は正規サイトのオリジンの権限で起こるため、Cookieの窃取も画面の差し替えも成立する。反射型・格納型・DOM型の3類型があり、出力先がHTML本文か属性値かスクリプト内かで必要な処理が変わる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
Webはデータとコードを同じHTML文字列に載せて運ぶ。文字列を組み立てて返す限り、どこまでが表示すべき文字でどこからが実行すべきコードかは出力の瞬間にしか決まらない。同一オリジンポリシーは「他サイトのスクリプト」を隔てる仕組みであって、正規サイト自身が吐き出したスクリプトは信頼してしまう。この構造上の隙をふさぐ責任が出力側にあることを説明できるかが、科目Bの記述で問われる。
具体例
ReactやVueのテンプレートは埋め込んだ値を既定でHTMLエスケープするため、通常の書き方をしている限りXSSは起きず、危険箇所はdangerouslySetInnerHTMLのような明示的な迂回口に絞られる。GitHubは自社サービスへのCSP導入の過程を技術ブログで公開しており、スクリプトの読み込み元を限定すれば、万一の混入時にも外部への送信を止められることを示している。
試験での引っ掛け
CSRFとの取り違えが最頻出で、XSSは被害者のブラウザで任意のスクリプトを走らせるもの、CSRFは被害者の正規セッションを使って意図しない要求を送らせるもの。DOM型はサーバがHTMLを組み立てないため、サーバ側のエスケープだけでは防げない。HttpOnlyはCookieの窃取を難しくするだけでXSSの成立自体は止められず、入力時の検証も出力時のエスケープの代わりにはならない。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 春期 応用情報技術者試験 午前 問40(IPA)解説で登場
WAFの説明として,適切なものはどれか。
正解:特徴的なパターンが含まれるかなどWebアプリケーションへの通信内容を検査して,不正な操作を遮断する。
要点:WAFは通信内容を検査してWebアプリへの攻撃を遮断する
WAF(Web Application Firewall)は、Webアプリケーションへのやり取りの中身を検査し、攻撃に特徴的なパターンを含む通信を遮断する仕組みである。SQLインジェクションやクロスサイトスクリプティングなど、アプリケーション層の攻撃への対策として使われる。
出典:平成29年度 秋期 応用情報技術者試験 午前 問45(IPA)解説で登場
WAFの説明はどれか。
正解:Webアプリケーションへの攻撃を監視し阻止する。
要点:WAFはWebアプリ層への攻撃を検知し遮断する
WAFはWebアプリケーションの前段に置き、HTTPの通信内容を検査してSQLインジェクションやクロスサイトスクリプティングなど、アプリケーション層を狙う攻撃を検知・遮断する仕組みである。ネットワーク層で通信を制御するファイアウォールでは防げない攻撃を対象とする。
出典:平成30年度 秋期 応用情報技術者試験 午前 問41(IPA)
クロスサイトスクリプティング対策に該当するものはどれか。
正解:Webページに入力されたデータの出力データが,HTMLタグとして解釈されないように処理する。
要点:XSS対策の要は出力時のエスケープでタグとして解釈させないこと。
クロスサイトスクリプティングは、利用者が入力した文字列がそのままWebページに出力され、スクリプトとして実行されてしまうことで成立する。したがって対策の中心は出力時のエスケープ処理で、山括弧や引用符などをHTMLタグとして解釈されない文字表現に置き換えることである。入力値の検証も併用するが、根本は出力側での無害化にある。
出典:平成30年度 春期 応用情報技術者試験 午前 問37(IPA)
クロスサイトスクリプティングの手口はどれか。
正解:Webアプリケーションのフォームの入力フィールドに、悪意のあるJavaScriptコードを含んだデータを入力する。
要点:XSSは入力されたスクリプトを他利用者のブラウザで実行させる
クロスサイトスクリプティングは、利用者の入力をそのままWebページに出力してしまう脆弱性を突き、悪意のあるスクリプトを他の利用者のブラウザ上で実行させる攻撃である。入力フィールドにスクリプトを含むデータを送り込む手口が典型で、対策は出力時のエスケープ処理である。
出典:平成31年度 春期 応用情報技術者試験 午前 問45(IPA)解説で登場
WAFの説明はどれか。
正解:Webアプリケーションへの攻撃を検知し、阻止する。
要点:WAFはHTTPを解析してWebアプリへの攻撃を検知・遮断する
WAF(Web Application Firewall)はHTTPの通信内容を解析し、SQLインジェクションやクロスサイトスクリプティングなどWebアプリケーションの脆弱性を狙う攻撃パターンを検知して遮断する。ネットワーク層で制御するファイアウォールでは防げない、アプリケーション層の攻撃に対応する点が特徴である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。