2010-12-06 19 views
2

いくつかのビデオストリーミングサイトが、特定のドメインでのみ再生されるようにビデオを制限することができるのだろうか。より一般的には、一部のWebサイトは特定のドメインからの要求にのみ対応します。要求レベルのドメインをアプリケーションレベルで制限することは可能ですか?

私は(彼らがすることができますか?)http://en.wikipedia.org/wiki/List_of_HTTP_header_fieldsを見て、使用される可能性があります参照元フィールドを見ましたが、私はHTTPヘッダを詐称することができることを理解しました

だから私の質問は、これは、アプリケーションで行うことができていますレベル?アプリケーションとは、ネットワークルータのオペレーティングシステムではなく、サーバーにデプロイされたWebアプリケーションなどのことです。

任意のプログラミング言語が回答として機能します。私はこれがどのように行われたのか不思議です。

不明な点がある場合は、お知らせください。あるいは、質問を明確に指定するために私が知る必要があることを教える機会としてそれを使うことができます。

答えて

1

HTTPヘッダーは役立ちます(小さい部分のみが偽装されているため)。信頼性がありません。通常、WebアプリケーションはWebフレームワークを使用しており、これらのWebアプリケーションに簡単にアクセスできます。

ソース情報を得るためにいくつかの方法:

  • のIP/TCPネットワークスタック自体からIPアドレスを発信元:それ通報は、このサーバ可視アドレスが実クライアントが(それに対処一致してはならないということですプロキシ、匿名プロキシ、大きなISPから来る可能性があります...)。
  • HTTP X-Forwarded-Forヘッダーでは、上記の問題を解決するためにプロキシがこのヘッダーを設定することになっていますが、偽装することもできますし、多くの匿名プロキシが設定していないこともあります。
  • とは別に、マシン識別子を使用することもできます(User-Agent Headerを使用するものもあります)。このマシン識別子を保存してフラッシュクッキーに格納するサイトがいくつかありますので、リコールクライアントを識別してブロックします。

ソースの問題は、(認証やクライアントベースの証明書などで)クライアントを安全に識別するためには、多くのセキュリティが必要であるということです。多くのサイトはそれをしません。ほとんどの場合、これは問題ではありません。ごく一部のクライアントだけが偽のアクセスサーバーに頭を奪っているためです。

HTTP Refererは別のものです:ユーザーがどのページから来ているかを示します。これはブラウザに含まれています。コンテンツが壊れてしまい、一部のクライアントにそれがまったく含まれていない(IEブラウザのバージョンがRefererをスキップしていることを覚えている)ので、信頼性もありません。

0

これらの種類のコントロールは、発信元のIPアドレスに基づいています。 IPアドレスから、国を特定することができます。 IPアドレスを知るには、(ソケットなどの)低レベルのプロトコル情報にアクセスする必要があります。

リファラーヘッダーは、あるサイトから別のサイトへのリンクをクリックすると意味がありますが、プログラミングライブラリで構築された一般的なHTTPリクエストにはこれを含める必要はありません。

関連する問題