押さえておきたいIE8の セキュリティ新機能 第01回まっちゃ445目覚まし勉強会ライトニングトーク はせがわようすけ http://utf-8.jp/ そい のや り、 おく かつ しは い しどさあきせ りういいたっ たこしいのか いうんーだく んを のか東 だ ら京 に "フォクすけ" (C) 2008 Mozilla Japan さて ここで、Web 2.0世代の 皆様に問題です Quiz. どちらがWeb2.0的か? 5秒でわかる解説 参考文献 http://namazu.org/~takesako/slides/binary20ajax.ppt ロングテール "フォクすけ" (C) 2008 Mozilla Japan 本題 IE8のセキュリティ新機能 Webアプリ向けに多数の改善 • XSSフィルター • Cross-Document Messaging • XDomainRequest • toStaticHTMLメソッド • JSONパーサ • Content-Type無視の改善 IE8のセキュリティ新機能 Webアプリ向けに多数の改善 • XSSフィルター •

Download Report

Transcript 押さえておきたいIE8の セキュリティ新機能 第01回まっちゃ445目覚まし勉強会ライトニングトーク はせがわようすけ http://utf-8.jp/ そい のや り、 おく かつ しは い しどさあきせ りういいたっ たこしいのか いうんーだく んを のか東 だ ら京 に "フォクすけ" (C) 2008 Mozilla Japan さて ここで、Web 2.0世代の 皆様に問題です Quiz. どちらがWeb2.0的か? 5秒でわかる解説 参考文献 http://namazu.org/~takesako/slides/binary20ajax.ppt ロングテール "フォクすけ" (C) 2008 Mozilla Japan 本題 IE8のセキュリティ新機能 Webアプリ向けに多数の改善 • XSSフィルター • Cross-Document Messaging • XDomainRequest • toStaticHTMLメソッド • JSONパーサ • Content-Type無視の改善 IE8のセキュリティ新機能 Webアプリ向けに多数の改善 • XSSフィルター •

押さえておきたいIE8の
セキュリティ新機能
第01回まっちゃ445目覚まし勉強会ライトニングトーク
はせがわようすけ
http://utf-8.jp/
そい
のや
り、
おく
かつ
しは
い
しどさあきせ
りういいたっ
たこしいのか
いうんーだく
んを のか東
だ
ら京
に
"フォクすけ" (C) 2008 Mozilla Japan
さて
3
ここで、Web 2.0世代の
皆様に問題です
Quiz. どちらがWeb2.0的か?
5秒でわかる解説
参考文献
http://namazu.org/~takesako/slides/binary20ajax.ppt
ロングテール
"フォクすけ" (C) 2008 Mozilla Japan
本題
IE8のセキュリティ新機能
Webアプリ向けに多数の改善
• XSSフィルター
• Cross-Document Messaging
• XDomainRequest
• toStaticHTMLメソッド
• JSONパーサ
• Content-Type無視の改善
IE8のセキュリティ新機能
Webアプリ向けに多数の改善
• XSSフィルター
• Cross-Document Messaging
• XDomainRequest
• toStaticHTMLメソッド
• JSONパーサ
• Content-Type無視の改善
XSS Filter
明らかな攻撃的スクリプトをブロック
GET /?q="><script>alert...
HTTP/1.1
HTTP/1.1 200 OK
Content-Type: text/html
<html>
<input type="text" value=""><script>alert...
</html>
文字コード関連のXSSも一部ブロック!
">
IE8のセキュリティ新機能
Webアプリ向けに多数の改善
• XSSフィルター
• Cross-Document Messaging
• XDomainRequest
• toStaticHTMLメソッド
• JSONパーサ
• Content-Type無視の改善
Cross-Document Messaging
•
•
•
•
•
•
iframe間でメッセージのやり取りを実現
クロスドメインでも通信可能
双方向でメッセージの送受信が可能
送信側: postMessage()メソッド
受信側: onmessage イベントハンドラ
JSONPより安全にデータの受け渡しができる
IE8のセキュリティ新機能
Webアプリ向けに多数の改善
• XSSフィルター
• Cross-Document Messaging
• XDomainRequest
• toStaticHTMLメソッド
• JSONパーサ
• Content-Type無視の改善
XDomainRequest
• XMLHttpRequestみたいなやつ
• クロスドメインでも読み込み可能
クライアント側
var XDR = new XDomainRequest();
xdr.open( "POST", "http://example.com/xdr.txt" );
xdr.send( "post data" );
サーバ側
HTTP/1.1 200 OK
Content-Type: text/plain
XDomainRequestAllowed: 1
IE8のセキュリティ新機能
Webアプリ向けに多数の改善
• XSSフィルター
• Cross-Document Messaging
• XDomainRequest
• toStaticHTMLメソッド
• JSONパーサ
• Content-Type無視の改善
toStaticHTMLメソッド
• 文字列中の「動的」な部分を削除
• 静的なHTMLはそのまま残る
var s = "<div>Hello<script>alert(1)</script></div>";
var t = toStaticHTML( s );
elm.innerHTML = t;
<body>
<div id="content">
<div>Hello</div>
</div>
</body>
IE8のセキュリティ新機能
Webアプリ向けに多数の改善
• XSSフィルター
• Cross-Document Messaging
• XDomainRequest
• toStaticHTMLメソッド
• JSONパーサ
• Content-Type無視の改善
JSONパーサ
• リモートからのJSONはeval()したくない!
• 安全なJSONパーサの組み込み
var jsonString = '{ "name" : "hasegawa" }';
var obj = JSON.parse( jsonString );
簡単・安全にJSONのパースができる!
IE8のセキュリティ新機能
Webアプリ向けに多数の改善
• XSSフィルター
• Cross-Document Messaging
• XDomainRequest
• toStaticHTMLメソッド
• JSONパーサ
• Content-Type無視の改善
Content-Type無視の改善
画像は画像。HTML扱いしない!
HTTP/1.1 200 OK
Content-Type: image/bmp
<html>
<script>alert(1)</script>
</html>
壊れた画像となる
Image/* は必ず画像として扱う!
Content-Type無視の改善
魔法の呪文
HTTP/1.1 200 OK
Content-Type: text/plain; authoritative=true;
<html>
<script>alert(1)</script>
</html>
ようやく呪縛から解放!
テキストファイルとして表示
続きは大阪で
Admintech.jp
検索
Admintec.jp大阪勉強会
• 2008年9月27日
• マイクロソフト大阪オフィス セミナールーム
• IE8の裏話もいっぱいあるよ
/ ̄ ̄\
/
_ノ \
|
( ●)(●)
. |
(__人__)
大阪まで聞きに来るべきだろ…
|
` ⌒´ノ
常識的に考えて…
. |
}
. ヽ
}
ヽ
ノ
\
/
く \
\
|
\ \
\
|
|ヽ、二⌒)、
\
http://admintech.jp/