Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

クロスサイトスクリプティング

クロスサイトスクリプティング(XSS)とは、悪意あるクライアントサイドのコードを Web サイトに差し込むセキュリティ攻撃です。差し込まれたコードは被害者のブラウザ上で実行され、 アクセス制限の回避やユーザへのなりすましなどにつながります。Open Web Application Security Project の調べによると、XSS は 2013 年において 3 番目に多い Web アプリの脆弱性 でした。

この攻撃が成功してしまうのは、Web アプリにバリデーションとエンコーディングが十分に実装されていない場合です。ユーザのブラウザは、悪意あるスクリプトを信頼できないものとして検知できません。そのため、任意の cookie やセッショントークン、Web サイト固有の機密情報などにアクセスされたり、悪意あるスクリプトによって HTML のコンテンツが書き換えられてしまいます。

クロスサイトスクリプティング攻撃は、1) 信頼できない送信元(ほとんどは Web リクエスト)から Web アプリにデータが入力されるとき、または 2) 悪意あるコンテンツかどうかの検査をせずに動的なコンテンツを Web ユーザに送信するときに起こります。

往々にして悪意あるコンテンツは JavaScript を含んでいますが、HTML や Flash、ブラウザで実行可能な他のコードを含んでいる場合もあります。XSS に基づく攻撃手法はほぼ無限に存在しますが、cookie やセッション情報といった秘密の情報を攻撃者に送信したり、攻撃者の用意した Web ページに被害者をリダイレクトさせたり、本来の Web サイト(脆弱性を含む)を装いつつユーザのマシン上で悪意ある処理を行ったりすることが多いです。

XSS 攻撃の種類は、格納型(持続型)・反射型(非持続型)・DOM-based の 3 つに分類することができます。

格納型 XSS 攻撃
差し込まれたスクリプトは、標的のサーバ内に永続的に格納されます。データに対するリクエストをブラウザが送信し、サーバから悪意あるスクリプトを受け取ることで被害が発生します。
反射型 XSS 攻撃
悪意あるリンクをクリックするよう誘導されたユーザが、特別に細工されたフォームを送信してしまったり、悪意あるサイトを閲覧してしまったりすることで、差し込まれたコードが脆弱な Web サイトへ送信されます。Web サーバはエラーメッセージや検索結果、リクエストの一部を含んだレスポンスなどによって、そのスクリプトをユーザのブラウザへ送信(反射)します。それまでユーザはその Web サーバと通信しており、ブラウザは「信頼できる」サーバからのレスポンスとみなすため、悪意あるコードがブラウザ上で実行されてしまいます。
DOM-based XSS 攻撃
クライアントサイドに元々あるスクリプトを利用し、(被害者のブラウザにおける) DOM 環境を変更した結果、ペイロードが実行されます。すなわち、そのページ自身は変わりませんが、DOM 環境に悪意ある変更を加えたことにより、本来とは異なる方法でクライアントサイドのコードが実行されてしまいます。

より詳しく

一般的な知識

ドキュメントのタグと貢献者

 このページの貢献者: hashedhyphen
 最終更新者: hashedhyphen,