Nginx中的防盜鏈措施主要通過配置valid_referers指令來實現,該指令允許你指定允許哪些域名訪問你的資源。根據不同的需求,nginx提供了幾種防盜鏈的配置方式:
- none:允許沒有Referer請求頭的請求通過。
- empty:允許有Referer請求頭、且值為空字符串的請求通過。
- 任意字符串:允許有Referer請求頭、且值與指定字符串相同的請求通過。
- 正則表達式:允許有Referer請求頭、且值滿足正則表達式的請求通過。
在配置防盜鏈時,還可以結合if指令來對不符合條件的請求返回403 Forbidden狀態碼,或者使用rewrite指令將請求重定向到其他資源或返回特定的提示信息。
例如,以下配置表示只允許來自www.baidu.com的請求訪問/Static路徑下的資源,其他來源的請求將返回403狀態碼:
location /static { valid_referers www.baidu.com; if ($invalid_referer) { return 403; } }
此外,雖然Referer請求頭可以被偽造,因此它并不是絕對安全的匹配方式,但在實際應用中,它仍然是一種常用的防盜鏈手段。