2012-01-13 2 views
11

URLReferrerとクエリ文字列に渡されたコードを使用してオンライン動画を制作し、有料クライアントのみが動画再生ページにリンクできるようにします。このシステムはしばらくの間うまく機能していました。 URLリファラーが偽装される可能性はあるのですが、誰がビデオにアクセスするためにクライアントにそのようなことをするのでしょうか?それは私たちのためにうまくいった。ページがHTTPSの場合、URLReferrerはnullです

しかし、今日、私はそれがうまくいかなかった人について尋ねられました。 URLReferrerはnullで、サイトはHTTPSです。私はオンラインで読んだことがあり、ソースページがhttpsのときにURLリファラーにアクセスする方法がないという印象を受けました。これは正しいです ?私がサイトのhttpsバージョンを作ったのなら、それはそれを解決するだろうか?それとも、これを回避するための他の方法がありますか?

ありがとうございました

答えて

13

あなたのオンライン調査は正しいです。 HTTPリファラーヘッダーまたは同等のものを設定しない主な理由は、これがセキュリティ上の問題である可能性があることです。参照元には「あなたの出身地」が含まれています。これは個人情報であり、他の人に公開すべきではありません。

したがって、リファラーが暗号化されている場合(SSLなどを使用して)、リファラーを取得できません。


更新:クライアントが参照するページがセキュア プロトコルで転送された場合(非セキュア) HTTPリクエストにRefererヘッダフィールドを含めるべきではありません

:ここで何HTTP specification says about coming from a secure siteです。

あなたが推測したように、この制限を回避する方法はありません。唯一の選択肢は、異なる検証モデルを使用することです。このような方法の1つは、ユーザーにキーを与え、そのキーを要求のパラメーターとして送信することです。他にもいくつかの方法が考えられます。

+0

ありがとうございます - キーの問題は、誰かが自分のページからリンクをコピーして使用できるということです。これは避けようとしていることです。それがビデオなので、明白な解決策は、自分たちのページにビデオを埋め込み、私たちの再生ページにはリンクさせないことだけです。 – cgraus

+0

[HTTPS仕様](http://tools.ietf.org/html/rfc2818)ではなく、HTTP仕様を引用しています。 – Bruno

+0

@Bruno:私は十分な注意を払っていませんでした。一定。 – Abel

関連する問題