ngx_http_referer_module モジュール

設定例
ディレクティブ
     referer_hash_bucket_size
     referer_hash_max_size
     valid_referers
埋め込み変数

ngx_http_referer_module モジュールは、"Referer"ヘッダフィールドに不正な値を持つリクエストのサイトへのアクセスを阻止します。適切な"Referer"フィールド値をもつリクエストを偽造することはとても簡単なので、このモジュールの目的はそのようなリクエストを完全に阻止することを目的としておらず、一般的なブラウザから送られる大量のリクエストを阻止することが目的だということに注意してください。一般的なブラウザは、たとえ妥当なリクエストでも"Referer"フィールドを送らないかもしれないということも考慮しなければなりません。

設定例

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

if ($invalid_referer) {
    return 403;
}

ディレクティブ

構文: referer_hash_bucket_size size;
デフォルト:
referer_hash_bucket_size 64;
コンテキスト: server, location

このディレクティブはバージョン1.0.5から導入されました。

正しいリファラのハッシュテーブルのbucketサイズを設定します。ハッシュテーブルの設定の詳細は別個のドキュメントで提供されています。

構文: referer_hash_max_size size;
デフォルト:
referer_hash_max_size 2048;
コンテキスト: server, location

このディレクティブはバージョン1.0.5から導入されました。

正しいリファラのハッシュテーブルのsizeの最大値を設定します。ハッシュテーブルの設定の詳細は別個の<a0>ドキュメント</a0>で提供されています。

構文: valid_referers none | blocked | server_names | string ...;
デフォルト: -
コンテキスト: server, location

埋め込み変数の $invalid_refererを空文字列に設定するような"Referer"リクエストヘッダフィールドを指定します。そうでなければ、この変数は"1"に設定されるでしょう。検索は大文字小文字に関係なく行われます。

次のパラメータが可能です:

none
リクエストヘッダに"Referer"フィールドが無い;
blocked
"Referer"フィールドはリクエストヘッダにあるが、その値はファイアオールまたはプロキシによって削除されている; そのような値は"http://"または"https://"で始まらない文字列;
server_names
"Referer"リクエストヘッダフィールドはサーバ名の一つを含んでいる;
任意の文字列
サーバ名と任意のURIプリフィックスを定義します。サーバ名には、最初あるいは最後に"*"を含むことができます。チェックの間、"Referer"フィールドの中のサーバのportは無視されます;
正規表現
最初の記号は"~"でなければなりません。"http://"または"https://"の後で始まる文字列について表現のマッチングが行われることに注意が必要です。

例:

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

埋め込み変数

$invalid_referer
"Referer"リクエストヘッダフィールドの値がvalidと見なされた場合は空文字、そうでなければ"1"

TOP
inserted by FC2 system