モジュール 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 で登場しました。
有効なレファラーのハッシュテーブルのバケットサイズを設定します。ハッシュテーブルの設定の詳細については、別の ドキュメント に記載されています。
構文 |
referer_hash_max_size |
---|---|
既定値 |
referer_hash_max_size 2048; |
コンテキスト |
server 、location |
このディレクティブはバージョン 1.0.5 で登場しました。
有効なレファラーのハッシュテーブルの最大 サイズ
を設定します。ハッシュテーブルの設定の詳細については、別の ドキュメント に記載されています。
構文 |
valid_referers |
---|---|
既定値 | — |
コンテキスト |
server 、location |
埋め込み済み $invalid_referer
変数が空の文字列に設定される「Referer」リクエストヘッダーのフィールド値を指定します。それ以外の場合は、この変数が「1
」に設定されます。一致の検索では大文字と小文字は区別されません。
パラメーターは次のとおりです。
none
- リクエストヘッダーに「Referer」フィールドがありません。
blocked
- リクエストヘッダーに「Referer」フィールドは存在しますが、その値はファイアウォールまたはプロキシサーバーによって削除されています。このような値は、「
http://
」または「https://
」で始まらない文字列です。 server_names
- 「Referer」リクエストヘッダーのフィールドには、サーバー名の 1 つが含まれています。
- 任意の文字列
- サーバー名とオプションの URI プレフィックスを定義します。サーバー名には、先頭または末尾に「
*
」を含めることができます。チェック中は、「Referer」フィールド内のサーバーのポートは無視されます。 - 正規表現
- 最初の記号は「
~
」である必要があります。表現は、「http://
」または「https://
」の後に続くテキストと照合されることに注意してください。
例
valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.;
埋め込み変数
$invalid_referer
- 「Referer」リクエストヘッダーフィールドの値が 有効 とみなされる場合は空の文字列、それ以外の場合は「
1
」です。