2009-08-11 12 views
2

私は深い守備としてリファラーヘッダーチェックを使用しようとしています(つまり、多くのセキュリティテクニックの1つで、いずれか単独のセキュリティテクニックに依存しています)。ユーザーがブラウザに「リフレッシュ」するように指示すると、HTTP_REFERERは入力されますか?

MSIEにはリフレッシュ時のリファラーが含まれていないことがあります。それは期待される行動ですか?とにかく私はリフレッシュを検出することができるので、私は欠けているリファラが大丈夫だと知っていますか?

はい、私はリファラーがカスタムブラウザで偽装される可能性があることを知っています。ちょうど、ハッカーが私の小さなサイトをハックしたいのであれば、適切な参照元を設定するために時間を費やす必要があるでしょう。

+0

(それはIE6の開発以来、すべての更新を見ていない)、これは既知のバグです、あなたはJavaScriptでリンクに移動した場合MSIEはリファラを送信しないことに注意してくださいページはクライアント側またはサーバー側でリフレッシュされましたか? – Freddy

+0

@Freddy、クライアントサイドリフレッシュ。 MSIEを使用して任意のページを右クリックすると、コンテキストメニューに表示される「リフレッシュ」について考えています。 – MatthewMartin

+0

パラノイドの人々は、ブラウザでリファラーをオフにする傾向があります(OperaやおそらくFireFoxでも簡単です)。たとえそれが多くの措置のうちの1つに過ぎないとしても、いかなる形態のセキュリティにも頼るという点は本当にありません。 –

答えて

2

rfc2616は、 "reload"で何が起きるかを正確に指定していないことに注意してください(Referer:自分のURIを持たないソースからURIを取得した場合、変動性。

しかし、「セキュリティ」コンテキスト内で話した場合、HTTPSアクセスページからHTTPアクセスページに移動してリロードを実行するときにReferer:15.1.3

Clients SHOULD NOT include a Referer header field in a (non-secure) 
HTTP request if the referring page was transferred with a secure 
protocol. 

セキュリティの観点からは、私はRefererを信用しません。標準自体が、これは調整可能(RFC2616、ページ151)であると仮定されていることを言及しているので、まず:

The information sent in the From field might conflict with the user's 
privacy interests or their site's security policy, and hence it 
SHOULD NOT be transmitted without the user being able to disable, 
enable, and modify the contents of the field. The user MUST be able 
to set the contents of this field within a user preference or 
application defaults configuration. 

第二に、実用的な角度から、制御は、例えば、この分野でいじくり回しますFirefoxはabout:config、network.http.sendRefererHeaderにあります。 here

任意のリファラーヘッダーを送信する場合は、「より多くの作業」はダウンロードしてcurlを開始するだけで、リファラーを希望するものに設定することができます。 (--referer <URL>)。だから、あらゆる種類のセキュリティに似た処理でそれを使用しようとするのは弱い考えです。

+0

「その他の作業」は、IE以外の別のブラウザでは実際には機能しません。そして、ちょっと、IEは7または8でそのオプションを持っている可能性があります...私は実際には一瞬または二以上のためにそれらを使用したことはありません。 – Powerlord

+0

私はそうではありません。そのため、私はカール(例えば、 "Referer:"はクッキーを扱うという退屈な細部を忘れることができます)の例を与えました。 –

+0

私のオフィスの方針は、私たちが好きではないセキュリティ機能を、決して水漏れではなくても会ったことがないということです。ちょうど家のドアをロックすることは、ガラスの窓を通って - まだ人々はまだ彼らのドアをロックする。 – MatthewMartin

1

ブックマークのクリックやユーザーがURLを入力したときにReferrerが設定されていません。

これは、ユーザーがリンクを一度クリックしてからF5キーを押しても、1つのリンクから大量の着信トラフィックが発生しているように見えるため、これはリフレッシュにも役立ちます回。

私の考えですが。これは信頼性の低い指標であり、主に個々のブラウザクライアントの動作に依存し、通常は起動するようにカスタマイズ可能です。

2

通常、ページを更新すると、ブラウザを呼び出して現在のページを取得するために使用された要求が再送信されます。これは、POST要求を再送するかどうか尋ねられる理由です。したがって、前のリクエストにRefererもすでに含まれていた場合にのみRefererが送信されます。

0

ほとんどのブラウザは元の要求を再送信します。元のリクエストにそれがある場合、リファラーが含まれることを意味します。

1

あなたがあれば知りたいです

//e.g. this will not send the referer in IE 
location.href = 'somepage.html'; 

//and I believe it also affects 
location.reload(); 
関連する問題