HTTPリファラーとは
要するに、HTTPリファラーは、ブラウザがWebサーバーにリクエストを送信するときに、通常、どのページからリンクしているかをサーバーに伝えるためにリファラーをもたらし、サーバーは使用します。この一部の情報は処理のために取得できます。たとえば、私が私のホームページから友人にリンクした場合、彼のサーバーは、毎日何人のユーザーが私のホームページ上のリンクをクリックして彼の Web サイトにアクセスしたかを HTTP リファラーからカウントできます。
リファラーは実際には英語の単語 Referrer であるべきですが、スペルを間違える人が多すぎるため、標準を作成した人が間違えただけです。
私の問題
フィードリーダーをGregariusに変更したところですが、以前使用していたlifereaとは異なります。Sinaブログにアクセスすると、写真が表示されず、「この写真はSinaブログユーザー専用です。通信して通信します」、これは HTTP リファラーが原因であることはわかっています。
私のインターネット クライアントの構成の特殊性により、最初は Squid の問題ではないかと疑ったのですが、実験によって否定されました。しかし、Squid、Tor、Privoxy の共同使用に関連するプライバシー漏洩の問題も発見しました。 、これは将来の研究のために残されます。
Gregarius はこの問題に対処できますか?
答えは「ノー」です。Gregarius は HTML コードの出力のみを担当し、画像へのアクセスはクライアントのブラウザーによってサーバーから要求されるからです。
ただし、Firefox 拡張機能をインストールすると問題が解決する可能性があります。記事で推奨されている「Send Referrer」は見つかりませんでしたが、別の利用可能なものを見つけました。それは、さまざまな Web サイトに応じてさまざまなリファラーの使用を制御できる「RefControl」です。訪問しました。
しかし、問題を解決するために Firefox 拡張機能を使用するのはあまりにも非効率的であるため、私は好まないので、より良い方法である Privoxy を使用します。
Privoxy は素晴らしいです
Privoxy のdefault.action に次の 2 行を追加します:
{+hide-referrer{forge}}
.album.sina.com.cn
そうすれば、Gregarius に Sina ブログの画像が表示されますよね? +hide-referrer は Privoxy のフィルターで、アクセス時の HTTP Referer の処理方法を設定します。また、Referer をブロックする、または直接使用することもできます。使用する必要があるリファラー URL がここに記述されます。
Privoxy の使用は Firefox を使用するよりもはるかに簡単なので、すぐに切り替えてください。
https から http へ
また、https ページのリンクから暗号化されていない http ページにアクセスすると、http ページで HTTP リファラーを確認できないこともわかりました。たとえば、https ページをクリックすると、w3c xhtml が表示されます。検証アイコン (URL は http://validator.w3.org/check?uri=referer) は検証を完了できず、次のメッセージが表示されます:
Referer ヘッダーが見つかりません!
RFC ドキュメントがあることが判明しましたhttp プロトコルで定義:
クライアントは、参照ページが安全な
プロトコルで転送された場合、(非安全な)HTTPリクエストにRefererヘッダーフィールドを含めるべきではありません
Firefox の Referer の設定はすべてここにあります。 2 つのキー値があります:
network.http.sendRefererHeader (デフォルト = 2) Referer の送信方法を設定します。0 はまったく送信しないことを意味し、1 はリンクをクリックしたときのみ送信することを意味します。 . ページ内の画像にアクセスした場合は送信されません。プライバシーに関するヒント #3: Firefox
network.http.sendSecureXSiteReferrer でリファラー ヘッダーをブロックする (default=true) を参照してください。 ある暗号化されたページから別の暗号化されたページにアクセスするときにリファラーを送信するかどうかを設定します。 true は送信を意味し、false は送信しないことを意味します。
画像のホットリンクを防ぐにはリファラーを使用してください
リファラーは信頼性がありませんが、画像のホットリンクを防ぐには十分です。実装は通常、Apache 設定ファイルを通じて行われます。まず、アクセスを許可するアドレスを設定し、それにマークを付けます。 # don.com からのアクセスのみが許可されます。
SetEnvIfNoCase Referer "^http://www.don.com/" local_ref
# アドレスを通じて直接アクセス
SetEnvIf Referer "^$" local_ref
次に、マークされたアクセスのみが許可されることを規定します:
変数 HTTP-REFERER はますます信頼性が低くなり、偽造される可能性があります。
偽装する方法は次のとおりです:
PHP (curl がインストールされている場合):
javascript
xmlHttp.setRequestHeader("Referer", "http://URL");// はは〜偽物〜
JS はサポートしていません ^_^
原理は、sock が http ヘッダーを構築してデータを送信することです。 Perl などの他の言語も使用できます。
現在、偽のリファラーを防御する簡単な方法は、検証コード (セッション) を使用することです。
現在、UUDOG、linkgate、VirtualWall などのホットリンク ソフトウェアを防止できる営利企業がいくつかあり、それらはすべて IIS で使用する DLL を開発しています。
Cookie 検証とスレッド制御を使用するものや、ファイル名をランダムに生成して URL 書き換えを実行できるものもあります。いくつかの方法では確かに良い結果が得られます
しかし、悪魔が悪魔と同じくらい優れている限り、これらの些細なトリックを突破する方法は存在します。
これは一般的に当てはまりますが、サーバーは偽造が容易ではなく、Web ページにアクセスすることで偽造できれば、自然な IP 配布が可能になります。