クロスサイトスクリプティング(クロスサイトスクリプティング)
WebページにJavaScriptを注入する攻撃(XSS)。Reflected/Stored/DOM-basedの3類型があり、OWASP Top 10常連、Content Security Policy(CSP)・HttpOnly Cookie・DOMPurify・React/Vue自動エスケープで対策する。
概要
クロスサイトスクリプティング(XSS)は、Webページに悪意あるJavaScriptを挿入し、ユーザーのブラウザ上で実行させる攻撃手法です。攻撃者は、入力検証や出力エスケープを回避し、ユーザーの認証情報やセッション情報を盗むことができます。XSSは、Reflected(反射型)、Stored(格納型)、DOM‑based(DOMベース型)の3種類に分類され、Webアプリケーションの設計ミスが原因で発生します。OWASP Top 10にも常連として位置づけられ、対策としてはContent Security Policy(CSP)、HttpOnly Cookie、DOMPurify、React/Vueの自動エスケープ機能が挙げられます。
主な特徴・仕組み
- 受信した入力をそのままDOMに挿入することで、スクリプトが実行される
- 反射型は、リクエストパラメータをそのままレスポンスに返すことで発生
- 格納型は、データベースやファイルに保存された悪意コードがページ表示時に実行
- DOMベース型は、クライアント側のDOM操作でスクリプトが挿入される
- 攻撃者は、Cookieの盗聴、フィッシング、マルウェア配布を行う
- CSPは、許可されたスクリプトソースを限定し、外部スクリプトの実行をブロック
- HttpOnly Cookieは、JavaScriptからCookieにアクセスできないように設定
- DOMPurifyは、入力文字列を安全なHTMLに変換し、スクリプトを除去
- React/Vueは、仮想DOMを介して自動的にエスケープ処理を行う
- 2025年には、ブラウザ側での自動XSS検知機能が標準化される見込み
- 2026年に公開予定の新しいCSPレベルが、さらに厳格な制御を提供
スペック/製品比較表
| 製品 | CPU | GPU | メモリ | ストレージ | 消費電力 | PCIeレーン | 解像度 | 価格帯 |
|---|---|---|---|---|---|---|---|---|
| Intel Core Ultra 9 285K | 5.7GHz | - | 32GB DDR5 | 1TB SSD | 450W | x16 | 3840x2160 | 3,200円 |
| RTX 4090 | - | 24GB GDDR6X | - | - | 450W | x16 | 7680x4320 | 9,800円 |
| ASUS ROG Strix | 4.5GHz | 8GB GDDR6 | 16GB DDR4 | 512GB NVMe | 350W | x16 | 2560x1440 | 5,500円 |
| Samsung 990 Pro | - | - | 32GB DDR5 | 2TB NVMe | 350W | x4 | 1920x1080 | 4,200円 |
| DDR5‑6000 | - | - | 16GB | - | - | - | - | 1,200円 |
- 5.7GHz ブーストクロックは、CPUの処理速度を示す
- 24GB GDDR6X は、GPUのメモリ容量
- 450W TDP は、デバイスの最大消費電力
- PCIe 5.0 x16 は、データ転送速度とレーン数
- 3840x2160 は、4K解像度
- 7680x4320 は、8K解像度
- 1920x1080 は、フルHD解像度
- 350W は、ノートPCの電力消費
- 32GB DDR5 は、最新メモリ規格
- 2TB NVMe は、ストレージ容量
具体例・対応製品
- Google Chrome 117 は、CSPレベル3をデフォルトで有効化し、外部スクリプトの自動ブロックを実装
- Mozilla Firefox 119 は、DOMPurifyを組み込んだ拡張機能を標準で提供
- Microsoft Edge 118 は、HttpOnly Cookieを自動設定する機能を追加
- Safari 17 は、2025年に予定される自動XSS検知機能を実装予定
- Next.js 14 は、Reactの自動エスケープをさらに強化し、サーバーサイドでのサニタイズをデフォルト化
自作PCでの選び方・注意点
- CPU は、XSS対策に直接関係しないが、開発環境の高速化に寄与
- GPU は、ブラウザのレンダリング速度に影響し、XSSの検出速度に影響
- メモリ は、同時に複数のブラウザタブを開く際に重要
- ストレージ は、開発用データベースやログ保存に必要
- 消費電力 は、長時間稼働する開発サーバーに影響
- PCIeレーン は、NVMe SSDの速度に直結
- 解像度 は、開発中のUIテストに不可欠
- 価格帯 は、予算に合わせて選択
- 2026年に登場予定の次世代CPUは、AIベースのXSS検知をサポート
- 最新のCSPレベル3は、ブラウザ側での制御を強化し、XSSリスクを低減
関連用語との違い
- SQLインジェクション は、データベースクエリに悪意コードを挿入
- CSRF(クロスサイトリクエストフォージェリ) は、ユーザーの認証情報を利用して不正リクエストを送信
- XSS は、クライアント側でスクリプトを実行し、情報漏えいを狙う
- DOM Purge は、XSS対策の一部で、入力文字列を安全化
- Content Security Policy は、XSS対策の枠組みとして広く採用
よくある質問(FAQ)
-
Q1: CSPを有効にしてもXSSは完全に防げますか?
A1: CSPはスクリプトの実行を制限しますが、すべてのXSSを排除できるわけではありません。入力検証と出力エスケープも併用が必要です。 -
Q2: HttpOnly Cookieはどのように設定しますか?
A2: サーバー側でSet‑CookieヘッダーにHttpOnly属性を付与します。これによりJavaScriptからCookieにアクセスできなくなります。 -
Q3: 2025年に予定されるブラウザの自動XSS検知は、どの程度有効ですか?
A3: 2025年のブラウザは、スクリプトの挿入ポイントをリアルタイムで検知し、警告を表示します。完全な防御ではありませんが、開発者にとって有用です。
まとめ
クロスサイトスクリプティングは、Webアプリケーションにおける重要な脅威であり、Reflected、Stored、DOM‑based の3形態が存在します。対策としては、CSP、HttpOnly Cookie、DOMPurify、React/Vueの自動エスケープが効果的です。2025年以降、ブラウザ側での自動検知機能が標準化され、2026年には次世代CPUがAIベースの検知をサポートする見込みです。自作PCを構築する際は、CPU・GPU・メモリ・ストレージ・消費電力・PCIeレーン・解像度・価格帯を総合的に検討し、最新のセキュリティ対策を組み込むことが重要です。