ファイルシステムで実行されるHTML / Javascriptアプリ、セキュリティの問題

StackOverflow https://stackoverflow.com/questions/163900

  •  03-07-2019
  •  | 
  •  

質問

ホストをセットアップしたくないため、一部のビジネスマンがローカルファイルシステムで実行できる小さなツールを作成しています。

基本的には、サードパーティからRESTを使用していくつかのレポートをプルするためのHTML + Javascript(jQueryを使用)のみです。

問題は、FF3とIEがajax呼び出しを許可していないことです。

Access to restricted URI denied" code: "1012

明らかにXSSの問題です...どうすれば回避できますか?返されるデータはXML形式です。

このようにしようとしていました:

$.get(productUrl, function (data){
    alert (data);
});

編集:明確にするために...私はこのために内部ホストを設定していません(多くの赤テープになります)。取得するデータのためにこれを外部でホストすることはできません。

編集#2 :少しテストした結果、IFRAMEを使用してリクエストを作成できることがわかりました。非表示のIFRAMEを使用するマイナス面があるかどうかは誰にもわかりますか?

役に立ちましたか?

解決

同様の状況で、私の解決策はMark Of The Webを使用することでした。これはIEが認識する特別なHTMLコメントです。ページを別のセキュリティゾーンに配置します。

参照: MSDN

他のヒント

Pythonがインストールされている場合、ファイルを提供するウェブサーバーは

と同じくらい簡単です
python -c “import SimpleHTTPServer;SimpleHTTPServer.test()”

編集:元のポスターはこのアプローチを使用できませんが、一般的に、これはこの問題を抱える将来のユーザーのためにこの特定の問題を解決する方法だと思います。

データを提供するサーバーを制御していますか?その場合、コールバックを設定できます。基本的な考え方は、受信データ(この場合はXML文字列)を処理するスクリプト内に関数があるということです。次に、サーバーは、文字列を引数として使用するコールバック関数のJavaScriptスニペットで要求に応答します。そして、AJAXを使用する代わりに、新しいスクリプトタグをページに追加します。これがJSONPの基礎です。このように見えます。

ローカルページ。

<script>
    function callback(str) {
        alert(str);
    }
    function makeRequest(param) {
        var s = document.createElement('script');
        s.src = 'http://serveranywhere/script.bla?' + params;
        document.getElementsByTagName[0].appendChild(s);
    }
</script>

リモートサーバーが戻る

callback('<xml><that><does><something></something></does></that></xml>');

スクリプトがページに追加されると、指定した文字列で関数コールバックが実行されます。 jQuery呼び出しは、$。ajax呼び出しでJSONPを使用して、これらすべてを実行します。これがお役に立てば幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top