web-dev-qa-db-ja.com

Referer HTTPヘッダーに依存できますか?

WebアプリケーションでReferer HTTPヘッダーに依存できますか?ユーザーが特定のドメイン/ウェブページからアクセスしたかどうかを確認し、ユーザーがアクセスした場合は、それに応じてサイトのレイアウトを変更します。

私は、人々がブラウザでRefererを無効にできることを知っています。どのくらいの頻度でユーザーがそれを行うのでしょうか? Refererが99%存在することに依存できますか?

33
bodacydo

一般的なルールとして、あなたは訪問者が誰であるか、またはいつであるかの純粋に有益な統計分析を除いて、重要な問題についてHTTPリファラーヘッダーをnot信頼する必要があります自分のサイトのユーザー間の行動パターンを探します。

上記のコメントのように、アカウンティングを訪問者の行動の単純なトラフィック分析と見なさない限り、このヘッダーをAAA(認証、承認、およびアカウンティング)に使用することをお勧めします。

OWASP(Open Web Application Security Project)は、 WebアプリケーションのAAAの参照ヘッダー を使用して「脆弱性」と見なします。

Refererヘッダーを信頼しないその他の具体的な理由には、次のものがあります。

  • 一般に、HTTP <-> HTTPS(TLS)接続から「リンク」する場合、ほとんどの標準Webブラウザーはこのヘッダーを通知しません。

  • プライバシー上の理由から、多くの企業プロキシはこのヘッダーを削除/削除するように構成されているため、Webブラウザーがこのヘッダーを送信しても、企業のプロキシソフトウェアが削除する場合があります。

  • 野生のセキュリティソリューションでは、マルウェア、アプリケーションに埋め込まれたブラウザなどが、このヘッダーの内容を変更および/またはチートすることが知られています。

次のことに注意してください:

  • HTTPSからHTTPSに「リンク」すると、ほとんどの標準Webブラウザは、ドメイン名またはネットワークアドレスの宛先を変更する場合でもこのヘッダーを通知します。
31

使用可能な値がない場合に合理的なデフォルトの動作があり、それに基づいて機密性の高い操作を行っていない限り、おそらく大丈夫です。

悪意のあるユーザーは、そのヘッダーを必要なものに設定できます。ほとんどのユーザーはブラウザのデフォルトの動作を変更しないと思うので、ほとんどの場合、おそらくそこにあり、正確です。

HTTPSとHTTPを切り替えるとリファラーヘッダーが送信されない場合もおそらくあります。

2
cpugeniusmv