4

JavaScriptコードを分析して、これらのJSがWebページに含まれているかどうかを検出して、HTTPリクエストを他のドメインに送信できるかどうか疑問に思っています.

たとえば、静的な Web ページ ファイルを私の Web サーバー (ドメイン A) に配置した人がいて、そのファイルから HTTP 要求を他のサイト (ドメイン B など) に送信したくありません。

これを行うにはいくつかの方法があります。

  1. img タグの使用:<img src=“http://domain.b.com/statics”&gt;

  2. スクリプトタグの使用。

  3. フォームタグの使用。

  4. iframe タグを使用します。

さらに、JS を使用して HTTP リクエストを生成することもできます。次に例を示します。

var f = document.createElement('form');
f.action = "http://domain.b.com/statics";
...

Javascript は難読化される可能性があり、上記の JavaScript は次のように圧縮できます。

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0=3.2(\'1\');0.5="9://8.7.6/10";',10,11,'f|form|createElement|document|var|action|com|b|domain|http|statics'.split('|'),0,{}))
4

1 に答える 1

0

これを完全に防ぐのは難しいでしょう - 悪意のあるサードパーティのコンテンツが使用できる新しいトリックが常に存在します (あなたが考えもしなかった、または執筆時点では存在していなかった)。

サンドボックス (PhantomJS など) でコンテンツをテストし、そのようなリクエストが行われるかどうかを確認することは可能ですが、悪意のあるコードがあなたが行っていることを認識していれば、回避しようとする可能性があります。

HTML マークアップが許可されていないが、カスタム マークアップ (HTML 機能の非常に限られたサブセットを提供する) を使用してクライアント用の HTML を生成する Wiki/フォーラムで使用されているアプローチを取ることを検討できます。

于 2015-06-10T08:43:49.513 に答える