Nginx

沒有referer時如何拒絕nginx中的請求?

  • October 20, 2014

在 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; }

引用自:https://serverfault.com/questions/638216