カハプロジェクト
Caja(発音:/ ˈ k ɑː h ɑː / KAH -hah)[ 1 ]は、サードパーティのHTML、CSS、JavaScriptをサニタイズするためのGoogleプロジェクトでした。2021年1月31日、Googleは既知の脆弱性と最新のウェブセキュリティ研究に対応するためのメンテナンス不足により、このプロジェクトをアーカイブし、代わりにClosureツールキットを推奨しました。[ 2 ]
Caja プロジェクトは Jasvir Nagra が主導し、JavaScript 部分は Google の研究科学者Mark S. Millerが2008 年にオブジェクト機能の原則に基づいた「仮想 iframe」用の JavaScript 実装として設計しました[ 3 ] [ 4 ] 。JavaScript (技術的にはECMAScript 5 の厳密モードのコード)、HTML、CSS入力を受け取り、それを HTML と CSS の安全なサブセットと、自由変数のない単一の JavaScript 関数に書き換えます。つまり、このような関数がオブジェクトを変更できるのは、ホスト ページからオブジェクトへの参照が与えられた場合のみです。DOM オブジェクトへの直接参照の代わりに、ホストページは通常、HTML をサニタイズするラッパー、プロキシURLへの参照を提供し、ページのリダイレクトを防止します。これにより、Caja は特定のフィッシング攻撃やクロスサイト スクリプティング攻撃を防止し、マルウェアのダウンロードを防止できます。また、書き換えられたプログラムはすべて同じフレームで実行されるため、ホスト ページはあるプログラムから別のプログラムへのオブジェクト参照をエクスポートできます。フレーム間通信は単なるメソッド呼び出しでした。
「caja」という単語はスペイン語で「箱」または「金庫」(銀行など)を意味し、Caja は機能ベースの JavaScript であるだけでなく、JavaScript プログラムを安全に格納できるという考えに基づいています。
CajaはGoogleのGoogle Apps Script [ 5 ]製品で使用されていました。2008年にはMySpace [ 6 ] [ 7 ]とYahoo! [ 8 ]がCajaの非常に初期のバージョンを導入していました。
参照
参考文献
- ^ Miller, Mark (2007年10月10日). 「[e-lang] [cap-talk] Caja discussion on the Caplet Group」 . EROS-OS.org . 2008年5月17日時点のオリジナルよりアーカイブ。
- ^ “Introduction - Caja” . Google Developers . 2021年1月22日時点のオリジナルよりアーカイブ。
- ^ Miller, Mark S. ; Samuel, M. ; Laurie, B. ; Awad, I. ; Stay, M. (2008年6月7日). 「サニタイズされたJavaScriptにおける安全なアクティブコンテンツ」 . Google Scholar .
- ^ Synodinos, Dio (2011年2月25日). 「ECMAScript 5、Caja、そしてセキュリティの改良、Mark S. Millerとの対談」 InfoQ .
- ^ 「Html Service: Caja Sanitization」 . Google Developers . 2013年8月26日時点のオリジナルよりアーカイブ。
- ^ 「MySpace: Caja JavaScript scrubbing ready for prime time」 2008年2月4日。2008年10月1日時点のオリジナルよりアーカイブ。
- ^ 「Web 2.0投資家:Cajaに注目」。ティム・オーレンのデューデリジェンス。2008年4月11日。
- ^ Pullara, Sam (2008年10月28日). 「OpenSocial API Blog: Launched: Yahoo!'s First Implementation of OpenSocial Support」 . OpenSocial . 2008年12月16日時点のオリジナルよりアーカイブ。
外部リンク
- 公式サイト、ソースコード
- カハ遊び場
- Caja ドラフト仕様: 「サニタイズされた JavaScript 内の安全なアクティブ コンテンツ」、Mark S. Miller、Mike Samuel、Ben Laurie、Ihab Awad、Mike Stay
- Yahoo!/Google Caja Javascript Sandbox