模組 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 雜湊表的儲存桶大小。設定雜湊表的詳細資訊在單獨的文件中提供。
語法 |
referer_hash_max_size |
---|---|
預設 |
referer_hash_max_size 2048; |
上下文 |
server , location |
此指令出現在 1.0.5 版本中。
設定有效 referer 雜湊表的最大 大小
。設定雜湊表的詳細資訊在單獨的文件中提供。
語法 |
valid_referers |
---|---|
預設 | — |
上下文 |
server , location |
指定 “Referer” 請求標頭欄位的值,這些值會使嵌入的 $invalid_referer
變數設定為空字串。否則,變數將設定為 “1
”。搜尋匹配項不區分大小寫。
參數可以是下列值:
none
- 請求標頭中缺少 “Referer” 欄位;
blocked
- 請求標頭中存在 “Referer” 欄位,但其值已被防火牆或 Proxy 伺服器刪除;此類值是不以 “
http://
” 或 “https://
” 開頭的字串; server_names
- “Referer” 請求標頭欄位包含其中一個伺服器名稱;
- 任意字串
- 定義伺服器名稱和選用的 URI 字首。伺服器名稱的開頭或結尾可以有 “
*
”。檢查期間,“Referer” 欄位中的伺服器連接埠會被忽略; - 正規表示式
- 第一個符號應為 “
~
”。應該注意,表示式將與 “http://
” 或 “https://
” 之後開始的文字進行比對。
範例
valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.;
嵌入變數
$invalid_referer
- 如果 “Referer” 請求標頭欄位值被視為有效,則為空字串,否則為 “
1
”。