「Ajaxアプリケーションの安全性」 - Douglas Crockford氏
Douglas Crockford氏はJSON(JavaScript Object Notification)を「発見」した人物として非常に有名で、現在はYahoo!のJavaScriptアーキテクトを務めている人物だ。書籍「JavaScript: The Good Parts」の著者としても名高い。同氏のセッションは、Web標準やそれに則ったAjaxアプリケーションに潜むセキュリティ問題に対して、広く警鐘を鳴らすものであった。
同氏は、クロスサイトスクリプティング攻撃を初めとしたセキュリティ上の問題がいかに重大であるかを説き、そしてブラウザやWeb標準はそれらを防ぐ手だてを持っていないと指摘。「『セキュリティを後から追加できる』と考えているWeb標準は誤りを犯している」「品質(Quality)、モジュール性(Modularity)、セキュリティ(Security)など、"-ity"で終わる性質は、後から加える事はできない。当初の設計に含められるべきである」として、HTML5のリセット(!)やW3Cの廃止(!!)にすら言及した。同氏が、現在そして将来のWebに対して強い危惧を抱いているのが非常に感じられる。
同氏によると、Web広告に代表されるマッシュアップはメインページのJavaScriptと同じコンテキストで動作するため、クロスサイトスクリプティングの危険性を常にはらんでいるという。この問題を解決するには、「ゲスト」側(マッシュアップされたJavaScriptコードなど)に公開すべきでないオブジェクトの参照を、「窓口(facet)」と呼ばれる中間オブジェクトでラップすることで、該当オブジェクトの機能をゲストから隠蔽するのが効果的である、と説明した。その上で、JavaScript自体はADSafeやCajaといったセキュリティ拡張を実現可能にしている比較的安全な言語であるとした。
「高速ウェブアプリのためのCSSパフォーマンス - Nicole Sullivan氏
Nicole Sullivan氏は米Yahoo!のパフォーマンスエンジニアを務め、3000以上にも及ぶ大規模サイトの最適化に携わってきた人物。同氏のセッションはCSSのカスケードやセレクタに関する基本的な説明に始まり、同氏の提唱する「オブジェクト指向CSS」から、数多くのテクニックを紹介していた。
例えば、Sullivan氏の紹介したテクニックには以下のようなものがある(一部)。
- 「デフォルト」の値を指定しよう: 例えば見出し(h1-h6)などの各要素に対して、デフォルトのスタイルをあらかじめ指定しておく事で、CSSの重複を無くし、サイト全体のデザインを統一する。同時に、要素名と同じクラスに対しても同じデフォルト値を設定しておくと、より汎用性が高まる
- 要素ではなくクラスに対してスタイルを指定しよう: 前述のようにデフォルトスタイルを設定する場合を除き、基本的なスタイルは全てクラスに対して行う。「要素名.クラス名」というセレクタでスタイルを設定するのは、例外的なスタイルを適用したい場合のみ
- ルールは同じ「強度」にしよう: 「あるルールは非常に複雑なセレクタを使用し、別のルールはクラス名のみのセレクタを使用する」など、セレクタの粒度がまちまちでは保守性に悪影響を及ぼす。できる限り同じ詳細度のルールを使用し、ルールを上書き(同じクラス名で違うスタイル、など)したい場合はカスケードを使用する
などなど、紙面の関係で全てのテクニックを紹介するのは控えるが、興味のある方は同氏のブログやWikipediaのリンクなどをあたってみると良いだろう。
最後に同氏は「CSS Wish List」として、同氏がCSSに追加して欲しいと考える機能のリストを紹介していた。変数定義やルールの継承、mixinなど興味深い機能が目白押しで、実現した暁にはWebデザインの効率が上がる事は間違いないと感じさせられるものであった。