公開日:2007年6月28日
独立行政法人情報処理推進機構
セキュリティセンター
本ページの情報は2007年6月時点のものです。
記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。
スクリプト注入(Script injection)は、被害者のブラウザに悪意のスクリプト(大部分はJavaScriptのコード)が入り込み、ブラウザの内側からセキュリティ侵害が起こる問題である。
代表的な攻撃として、いわゆる「クロスサイトスクリプティング(XSS)」が挙げられることが多い。これは Webサーバのエコーバック(鸚鵡返し(おうむがえし))のロジックを悪用する攻撃である。もうひとつ、いわゆる「第二攻撃(Second-order XSS)」も挙げられる。 いずれの攻撃においても、スクリプト注入を許してしまう Webサーバは、HTML生成時のスクリプト除染が不備なものである。
注:ちなみに、フラウザにロードされる JavaScriptコードのロジックを悪用する攻撃として、いわゆる「DOMベースのスクリプト注入」(「クライアント側コードに起因するスクリプト注入」)もある。
いわゆる「クロスサイトスクリプティング(XSS)」には、「攻撃者」、「標的サイト」および「被害者」の 3者が関与する。サイト横断的にエコーバックのロジックを悪用する。(別名:Reflected XSS)
次のようなメカニズムによって攻撃されうる。
参考:
いわゆる「第二攻撃(Second-order XSS)」(別名:Stored XSS もしくは Persistent XSS)は、データベースに保管された悪意あるスクリプトが、時間差を経て閲覧者のブラウザ上で動作する。ただしサイト横断的な構図にはならない。
攻撃者が悪意あるプログラム(ワーム)であることもありうる。2005年に MySpace のサイト内においてインシデントをもたらした「Samyワーム」は、この攻撃を実装したものであった。
次のようなメカニズムによって攻撃されうる。
「クロスサイトスクリプティング(XSS)」と「第二攻撃(Second-order XSS)」によるスクリプト注入に伴って想定される侵害は共通する。例えば次のような被害がもたらされうる。