研究プロジェクトの一環として、Google Cajaプロジェクト(https://code.google.com/p/)のSecure EcmaScript実装を使用してサードパーティのスクリプトのサンドボックスを調査中ですes-lab/wiki/SecureEcmaScript、https://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/ses)。このようなサンドボックス(Google Maps API v3(https://maps.googleapis.com/maps/api/js))でGoogle Mapsアプリケーションを実行した後、ロードされたスクリプトは制御された環境で実行されます。しかし、この作業を行うために、私はGoogle Mapsアプリケーションによって読み込まれた最初のスクリプトで2つの修正を行う必要がありました(執筆時点では、これはhttps://maps.gstatic.com/intl/en_us/mapfiles/api-3/8/2/main.jsでした)。変更がなければ、コードはECMAScript 5の厳密なモードに準拠していないため、アプリケーションが実行されません。エラーをスローする「ナビ」のプロパティへのアクセスを引き起こし、厳密モードでGoogle Maps APIの厳密なモードへの準拠
R.cf=function(){return this}().navigator&&-1!=ha.userAgent[Mc]()[tb]("msie");
function(){return this}
戻りundefined
を:具体的には、次のコードは、ファイルのどこかで発生します。厳密でないモードでは、関数はグローバルな "window"オブジェクトを返します。このような状況が厳しいモードでエラーを引き起こす場所がもう1つ見つかりました。
最初は、Googleマップアプリケーションが厳格なモードに準拠していないことに驚いた。私が知る限り、厳密なモードの使用には利点があります。しかし、元のコードは厳密なモードに準拠している可能性があると思いますが、小型化コンパイラによって行われた変換によってコンプライアンスが削除されます。セキュリティの観点から、制御された方法でスクリプトを実行できることは非常に便利です。たとえば、外部スクリプトが改ざんされ、その機能が変更された場合のセキュリティ違反を防ぐことができます。したがって、このようなサンドボックス内でGoogleマップアプリケーションを実行できることは非常に便利だと思います。ただし、Google CajaのSecure EcmaScriptの実装では、厳密なモードがその機能を保証するための制限に依存しているため、厳密なモードに準拠したGoogleマップアプリケーションが必要です。
私の質問は次のとおりです。厳密なモードに準拠したバージョンのGoogleマップアプリケーションは、すぐに利用できますか?または、現在のGoogleマップアプリケーションは、対応するアプリケーションに置き換えられますか?あなたは...マップのAPIの問題追跡
http://code.google.com/p/gmaps-api-issues/
にこれを追加し、Googleはめったにupcomming機能についてはコメントしない注意しなければならないような種類に関しては
、Yoran
返信いただきありがとうございます。以前は私の質問をメーリングリスト([email protected])に掲載しましたが、それは技術的な質問であり、代わりにStackOverflowに掲示される方が適切でした。私はあなたのアドバイスを受け取り、課題トラッカーの機能要求を出しました。うまくいけば私はGoogleから返信を得るでしょう。 – yorbro
問題追跡ツールでそれを見つけることができませんでした。リンクがありますか? – Blaise