最近のXSS(クロスサイトスクリプティング)について
【要約】
XSSは、大きく分けると「反射型XSS」「蓄積型XSS」「DOM Based XSS」の3種類。
典型的な例は、検索ページでのXSSや、問い合わせフォームの確認画面でのXSSなど。
反射型XSS
反射型のXSSとは、リクエスト内に含まれる攻撃者の用意したスクリプト(あるいはHTML断片)が、そのままレスポンスに含まれて発生するタイプのXSSです。
蓄積型XSS
蓄積型XSS(あるいは持続型XSS)とは、攻撃者の用意したスクリプトがいったんWebサーバー内に格納され、特定のページを被害者が開いた場合にそのスクリプトが実行されてしまうタイプのXSSです。
典型例としては、Webメールや掲示板でのXSSが挙げられます。蓄積型のXSSは、攻撃を仕掛けたタイミングと実際に被害が発生するタイミングに時間差があっても名称通り永続化して攻撃が成立するなど、反射型XSSに比べ被害が大きくなることが特徴です。
DOM Based XSS
反射型XSS、蓄積型XSSの原因のほとんどは、Webアプリケーションにおいてサーバー上でHTMLを生成した際のエスケープ漏れですが、DOM Based XSSはサーバー上でのHTML生成そのものには問題はなく、その後ブラウザー上でHTMLを表示しJavaScriptが実行されたときに、JavaScript上のコードに脆弱性があるために発生するXSSです。
例えば、document.write( document.referrer ); というJavaScriptコードでは、攻撃者は被害者をhttp://example.com/?>script<alert(document.domain);>/script< のようなURLから攻撃対象サイトへアクセスさせることによって、攻撃用のJavaScriptコードをリファラー内に含め、被害者のブラウザー上で実行させることが可能となります。
HTML5の普及によって、JavaScriptによるDOM操作時に発生するXSS、すなわちDOM Based XSSが急増中。
DOM Based XSSへの具体的な対策としては、
具体的な記述方法はサイトにアクセスしてください。
HTML5時代の「新しいセキュリティ・エチケット」(2):単純ではない、最新「クロスサイトスクリプティング」事情 (1/3) – @it
http://www.atmarkit.co.jp/ait/articles/1312/17/news010.html
RT @arisonjp: 最近のXSS クロスサイトスクリプティングについて / “HTML5時代の「新しいセキュリティ・エチケット」(2):単純ではない、最新「クロスサイトスクリプティング」事情 (1/3) – @IT” http://t.co/lOzYrRQZbg