2010-11-18 6 views
1

私は<script src="bla"></script>をいくつかのドメインに読み込むことができます。 ロードされるドメインを制御する方法があるかどうかを知りたい。 明確にする:私のスクリプトはサーバー側でレンダリングされているので、要求されたドメインが無効な場合は、基本的に空の文字列を返すことができます。異なるドメインでのスクリプトの読み込みを防止する方法

これは、自分のスクリプトを埋め込んでいる他のサイトを防ぐためです。

ありがとうございます!

答えて

2

あなたはリファラをチェックすることもできますが、これが設定されていますユーザのWebブラウザによって表示され、100%信頼できるものではありません。

スクリプトを埋め込んでいるドメインを100%検出する方法はないと思います。

+0

私はどちらも考えることはできません。おそらく、リクエストヘッダーを確認することがあなたができることです。また、ユーザー定義のキー/値のようなリファラー以外のものをチェックすることもできます。 – Andy

0

リクエストが送信されているドメインを確認できませんか?

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.host.aspxを参照すると、HttpContext.Current.Requestを介して取得できます。

例:

if (HttpContext.Current.Request.Host.Containts("fred.com")) { 
    return; // Or you could do a Response.Write and Flush 
} 

あなたはまた、最初にチェックして返すだけで閉鎖にスクリプトコードを埋め込むことができます。

(function() { 

    if (location.hostname == "....") return; 

    ...more code here... 

})(); 
+0

JSは非常に簡単にハッキングできるので、オプションではありません。 – Himberjack

+0

あなたはその質問に言及していませんでした。リクエストの.NETプロパティのHostプロパティを確認します。http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.host.aspx、HttpContext.Current.Requestを使用してHttpWebRequestを取得できます。 – Lloyd

0

次の例のように、

をimages- のapacheのmod_rewriteの、またはIISのISAPIフィルタホットリンクを防ぐために使用したのと同じメカニズムを使用するか、それが来た場合、別のドメインからの要求をドロップ、または去勢スクリプトを送信することができます。

関連する問題