Nginx
沒有referer時如何拒絕nginx中的請求?
在 nginx access.log 中,我看到許多行,例如:
1.2.3.4 - - [19/Oct/2014:22:48:11 -0400] "POST /someurl/suburl HTTP/1.1" 200 19967 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2"
它們之間唯一的共同點是“-”(我認為這意味著沒有設置推薦人)。
因此,我嘗試使用以下方法拒絕這些請求:
if ($http_referer ~ ^(-)) { return 444; }
但是,正如您在上面看到的,這不適用於 POST 請求。
您遇到的問題是 nginx 沒有看到“-”的引用者,它只是在日誌中使用它來保持日誌解析應用程序檢查期望引用者。這幾乎可以阻止任何手動輸入網址或將其添加書籤的人
試試這個
if ($http_referer = "") { return 403; }