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 |
---|---|
デフォルト: |
referer_hash_bucket_size 64; |
コンテキスト: |
server , location |
このディレクティブはバージョン1.0.5から導入されました。
正しいリファラのハッシュテーブルのbucketサイズを設定します。ハッシュテーブルの設定の詳細は別個のドキュメントで提供されています。
構文: |
referer_hash_max_size |
---|---|
デフォルト: |
referer_hash_max_size 2048; |
コンテキスト: |
server , location |
このディレクティブはバージョン1.0.5から導入されました。
正しいリファラのハッシュテーブルのsize
の最大値を設定します。ハッシュテーブルの設定の詳細は別個の<a0>ドキュメント</a0>で提供されています。
構文: |
valid_referers
|
---|---|
デフォルト: | - |
コンテキスト: |
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
"