私は、どのWebページ(iGoogle、Pageflakesウィジェットのようなもの)に埋め込まれることになっているJSウィジェットの束を開発しているとしましょう。JavaScriptファイルのスプーフィングを検出する
クライアントは、スクリプトタグを含むことにより、ウィジェットを埋め込むことができます。
<div id="widgetHost">
<script src="http://fantasticwidgets.net/awesomeWidget.js"></script>
<script src="http://fantasticwidgets.net/awesomeWidgetAgain.js"></script>
</div>
は今、これらのウィジェットは、共通のライブラリに依存している( - 例えばmyCommon.jsましょうjQueryのは、アンダースコア、そして私自身のいくつか)。
理想的には、これが起こるべきである:
- ウィジェットのbootstraper JSは、その必要なバージョンでこれらのライブラリファイルの存在のための最初の
- ウィジェットのbootstraper jsのチェックをダウンロードされる(jQueryのv1.6.2がロードされているかどうかと言いますページ上にあるかどうか、myCommon v1.1など)
- これらのファイルがロードされている場合は、これらのファイルを要求しないでください。欠落しているスクリプトのみをダウンロードしてください。
- これらのスクリプトは、その後、いくつかのWebサービスを呼び出して、いくつかの魔法を行うと、ページ上のHTMLをレンダリング
懸念:すでにロードされたファイルのチェックには、スクリプトのなりすましの脆弱性を紹介します。悪意のあるユーザーは、読み込まれたライブラリを偽装して、機密情報を盗んだり、他の悪いことをしたりします。
ソリューション:ロードされたライブラリをチェックしないで、常にそれらのすべてを再度送信します。これはまだ防弾ではありませんが、少なくとももう一度偽装する必要があるため、少なくとも少し難しくなります。 しかし、これは無駄な帯域幅と負荷時間の増加を引き起こします。
質問:それがロードされたファイルは、好ましくは、クライアント側で、改ざんされているかどうかを検出することは可能ですか?それとも、サーバー側のソリューションを含める必要がありますか? ASP.Netはサーバー側で動作しています。
まあ、含まれているスクリプトファイルに含まれている特定の変数にチェックサムを含めることができ、そのチェックサムが現在の状態の変数チェックサムと一致するかどうかを確認できます。 –
人が最初にハイジャックすることができれば、ライブラリが追加される前または後に情報を簡単に盗むことができる。安全にすることはできません。それを安全にするための唯一の方法はiframeです。 – epascarello
皆さん、ご意見をお聞かせください。可能であれば、いくつかの(擬似)コードで? – Mrchief