XSS

XSSとは

XSS(クロスサイトスクリプティング、Cross-Site Scripting)は、Webサイトに悪意のあるスクリプトを差し込まれ、そのサイトを開いた人のブラウザ上で実行されてしまう脆弱性です。入力された文字列を、画面に出す際に適切に処理していないと起きます。詳しい分類はOWASPの解説にまとめられています。

XSSで起きること

  • ログイン状態を示すCookieを盗まれ、利用者になりすまされる
  • 偽のログインフォームを表示され、パスワードを入力させられる
  • 利用者に気づかれないまま、投稿や購入などの操作を実行される
  • 別の悪質なサイトへ転送される

スクリプトは、攻撃を受けたサイトの権限で実行されます。そのため、ブラウザの同一オリジンポリシーでは防げません。

XSSの種類

種類仕組み
反射型URLのパラメータなどに含めたスクリプトが、そのまま応答に反映される。攻撃者が作ったURLを開かせる
格納型コメント欄やプロフィールなどに保存されたスクリプトが、ページを開いた全員に実行される
DOM型サーバーを経由せず、ブラウザ上のJavaScriptが、URLなどの値を安全でない形でページに書き込むことで起きる

対策

  1. 出力時にエスケープする: 画面に出す文字列は、出力する場所(HTML本文、属性、JavaScript、URL)に合った方法でエスケープします。入力時のチェックだけでは足りません。
  2. フレームワークの自動エスケープを使う: テンプレートエンジンの標準の出力機能を使い、エスケープを外す指定は避けます。
  3. CSPを設定する: Content-Security-Policyで、読み込めるスクリプトの取得元を絞ります。万一差し込まれても、実行を抑えられることがあります。
  4. Cookieに HttpOnly を付ける: HttpOnlyがあると、JavaScriptからセッションのCookieを読めません。被害を小さくできます。
  5. ソフトウェアを更新する: WordPress本体、テーマ、プラグインのXSSの脆弱性は、更新で修正されることが多いです。

WordPressでの書き方の例

テーマやプラグインを自作する場合は、出力の種類に合う関数を使います。

<?php echo esc_html( $title ); ?>
<a href="<?php echo esc_url( $url ); ?>">リンク</a>
<input value="<?php echo esc_attr( $value ); ?>">

HTMLの一部を許可したい場合は、wp_kses() や wp_kses_post() で、許可するタグを限定します。

よくある誤解

  • HttpOnlyやCSPを設定すれば、XSSの脆弱性そのものが無くなるわけではありません。被害を小さくするための追加の対策です。根本は、出力時のエスケープです。
  • 入力時に「<」を取り除くだけでは、不十分なことがあります。出力する場所によって、危険な文字が変わるためです。

Webサイト セキュリティチェッカーで確認する

Webサイト セキュリティチェッカーは、公開されている情報を受動的に確認する診断です。入力欄に攻撃用の文字列を送ってXSSを探す検査は行いません。代わりに、XSSの被害を小さくするCSP、Cookieの属性、古いJavaScriptライブラリの有無を診断します。XSSそのものを調べるには、専門業者による脆弱性診断をご検討ください。

関連用語

関連する用語

サイトの設定を無料で確認する

サイトのURLを入力するだけで、XSS などの設定状況を診断できます。Webサイト セキュリティチェッカー「Security Checker X」は、登録なしで使えます。

デジタルマーケティング事業部 統括マネージャー

略歴:京都大学情報学研究科知能情報学専攻修士課程修了後、日経大手インターネットショッピングモールの開発部でエンジニアとしてシステム開発・運用に従事。同社新規モバイル事業の立ち上げに開発プロジェクトマネージャー、兼プロダクトマネージャーとして参画。その後、外資系大手製薬メーカーのデジタルマーケティング部門でシニアアソシエイトとして従事した後、2020年にエスライン・テクノロジーズのデジタルマーケティング事業部統括マネージャーに就任。カスタマーファーストでデジタルマーケティングの役立つ情報を日々発信中。

【MALINE】総合デジタルマーケティングツール
【特別価格】Digicert VMC
NEWS
  1. 1

    【NEWS】旅行比較サイト『TRAVEL HUB(トラベルハブ)』サービス提供開始のお知らせ

  2. 2

    オフィス移転のお知らせ

  3. 3

    【MALINE】マリン株式会社設立のお知らせ

  4. 4

    無料で使える「Excel版 一斉メール配信ツール」提供開始のお知らせ ~SMTP設定だけで今すぐメール一括送信~

  5. 5

    中小企業向けDXプラットフォーム『Hirameki 7』SEO/MEO支援オプション提供開始。Hirameki 7ご利用者様の集客効果を最大化!

カレンダーから記事を探す
2026年10月
月 火 水 木 金 土 日
 1234
567891011
12131415161718
19202122232425
262728293031  
SEO検索順位チェッカー
Googleマップ/MEO順位チェックツール
【無料】メールアドレス生存確認ツール
【無料】Excel一斉メール送信ツール
メールアドレス漏洩・流出チェックツール
メールドメインブラックリスト判定ツール
DMARC/SPF/DKIM診断ツール
IPアドレス位置・住所特定ツール
自分のIPアドレス確認ツール
驚愕効果のSEO対策