日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2015年2月27日金曜日

セキュリティ対策:JavaScriptでHTML操作をする人は必読!IPAテクニカルウォッチ 『DOM Based XSS』に関するレポート

イントロダクション

誰でも手軽に使えて便利な JavaScript ですが、書き方を間違えると重大なセキュリティ上の問題(脆弱性)を引き起こしてしまいます。

そんな JavaScript を使ったプログラムの脆弱性の中でも、うっかり作りこんでしまいがちなのが、「DOM Based XSS」ではないでしょうか?

DOM Based XSS

DOM Based XSS は、JavaScript を使用して、ブラウザで表示している HTML 構造に手を加えるときに埋め込んでしまいがちな脆弱性です。

例えば、ブラウザで表示している画面を、document.writeelement.innerHTML などで書き換えていませんか?
(それら以外にも、危険なメソッド・プロパティはありますが)


それらに与えるデータが動的に決定されるものだと、悪意のある第三者が任意のタグやスクリプトを埋め込むことで、ユーザのブラウザの情報を盗んだり、悪意のあるページへ誘導されたり、意図しない操作を実行されたりといった操作を行われてしまいます。

この脆弱性を埋め込んでしまうページによっては、ユーザの個人情報の流出や、金銭的な被害といった問題が発生します。


そんな、DOM Based XSS について、どのようなコードが危ないのかといった点や、どのように対策したらよいのかといった点を解説した資料(PDF)が、IPA(情報処理推進機構)から提供されています。(公開日:2013年1月29日)

IPA 独立行政法人 情報処理推進機構:IPAテクニカルウォッチ 『DOM Based XSS』に関するレポート
https://www.ipa.go.jp/about/technicalwatch/20130129.html

『DOM Based XSS』に関するレポート (PDFファイル 1.95MB)


非常に分かりやすく、DOM Based XSS の実例と対策方法が記載されています。
JavaScript でプログラムを書く人は、是非一読しておくとよいでしょう!


なお、公開日が 2013年1月29日と、現時点(2015年2月27)からすると 2 年前のため、DOM Based XSS 関連に新たな情報が出てきているかもしれません。

上記の資料で基礎を抑えたうえで、様々な関連情報を探してみてください。


関連情報

DOM Based XSS に関連して、Mutation-based XSS(mXSS) という脆弱性もあるようです。

mXSS - Mutation-based Cross-Site-Scripting のはなし - 葉っぱ日記
http://d.hatena.ne.jp/hasegawayosuke/20140508/p1

HTML5 and Security Part 4 : DOM based XSS HTML5セキュリティ その4 : DOM based XSS編
http://utf-8.jp/public/20140908/owasp-hasegawa.pdf


関連記事

JavaScript:document.createTextNodeをappendChildしたときの、HTMLはどうなっているか?
http://upa-pc.blogspot.com/2015/02/javascript-dom-based-xss-protect-createTextNode.html

JavaScript:element.setAttributeしたときの、HTMLはどうなっているか?
http://upa-pc.blogspot.com/2015/02/javascript-dom-based-xss-protect-setAttribute.html





関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...