« 2008年04月05日 | メイン | 2008年04月07日 »
2008年04月06日
Webは修理が必要だ — Javascriptのセキュリティ問題
前回に続き、Ajax World East2008におけるDouglas Crockford氏の「Webを修理できるか」のスライドの続きをご紹介します。
※前回はこちらです。
2008年04月03日 Webは修理が必要だ — Turducken問題
18.Webを修理するための三又戦略 — Javascriptの安全な部分集合(本要約19~22項)、ブラウザの小さな改善(本要約23項)、ブラウザの強力な改善(本要約24~25項)(スライド33)
19.Javascriptを小さくして、セキュアでない部分を削除する(スライド34~37)
JSLint http://JSLint.com/は、HTMLとJavascriptの安全な部分集合を定義している。
ADSafeでは、グローバル変数・関数は定義されない。 ADSAFE オブジェクト以外にグローバル変数・関数がアクセスされることはない、など。Google's Caja/CajitaもJavascriptの安全な部分集合。
20.Ecmascriptとその実装には未発見の危険があるかもしれず、ブラウザの実装が変化して新しい脆弱性を導入しているかもれない。DOMラッパは完璧でなければならない。(スライド38)
21.クロスサイトデータアクセスは、他のサイトからデータを取得してマッシュアップするのに有用だ。しかし、スクリプトタグを巧妙に改変されると非常に危険。(スライド40~42)
22.安全なデータ交換のためのJSONRequestを提案した。ブラウザに実装して欲しい。(スライド43)
JSONRequest
23.HTMLはモジュール化を提供していない。Google Gear, Adobe AIRは、通信のための入れ物を提供するが、重いしXSS攻撃からは安全でない。<iframe> は解決策ではない。(スライド44~47)
24.JavascriptとDOMを置き換える必要がある。ADsafeからスタートして注意深く機能を強化する。(スライド49~63)
25.Javascriptをより安全な言語で置き換え、HTMLとDOMを安全なアプリケーション配布システムで置き換えねばならない。しかし、現在のHTML5の提案はそうなっていない。(スライド67)
26.Webはかつては革新の駆動車だったが、今は革新の障害だ。Webの時間は昔は”速い”を意味した。2000年には全てのブラウザでAjaxが可能になった。2005年にJesse James Garrett がAjaxを発見した。なぜ、5年も掛かったのだろうか?(スライド69~73)
27.ブラウザの新しいバージョンが普及するのに長い時間が掛かるためだ。(スライド74~75)
28.人類は10年で人間を月に送ったが、10年でWebを修理できるだろうか?(スライド76)
29.Webを置き換えようとする3つの競争 — Silverlight、AIR、JavaFXがある。これはWebの終わりを意味する。(スライド77~78)
30.私は、以前は、ブラウザは最も不適切なプログラム環境と言っていたものだが、それはモバイルを発見する前のこと。(スライド79)
31.モバイルへ向かう。もし、PCベースのブラウザがモバイルのペースに追いつけないなら、モバイルがPCを廃れたものとしてしまうだろう。(スライド80~82)
32.さしあたり、ブラウザを信用しないこと。コーディング衛生学が必須だ。品質の高いコードを書け。JSLintでチェックせよ。(スライド83~86)
33.Webの標準化は敗れている。W3C、ECMA、ブラウザ・ベンダに圧力を掛けるべき。彼らは、君達を危険にさらしている。(スライド88)
プレゼンは、以上です。
モバイルも良いですが、PDFを表示するには、14インチディスプレイ付きのモバイルが必要なのが困りますね。
投票をお願いいたします