如果在没有引用的情况下如何拒绝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没有看到“ – ”的引用,它只是用来在日志中保持日志parsing应用程序,检查期望引用。 这几乎可以阻止任何人手动inputurl或书签

尝试这个

  if ($http_referer = "") { return 403; }