Semalt垃圾邮件引用者如何绕过Nginx规则?

时间:2015-12-08 17:12:30

标签: nginx referrer-spam

以下是我用来阻止Semalt等垃圾邮件引荐人访问我网站的方法。

在Server指令下,我有以下(不完整的引用列表):

queue.notify()

这条规则似乎无法奏效,而且我仍然可以从中受到点击。这与我在其中创建过滤器的Google Analytics无关,我知道。但是,事实并非如此,我每天都会在日志中看到这些引用,并且能够访问我的网站,因此这些垃圾邮件发送者会向我的服务器发出实际请求。他们如何绕过Nginx规则?我验证了上面的代码并将我的其他网站放到了列表中,然后我将自己推荐到第一个网站并被阻止。那它是如何为我工作而不是为他们工作?是否有其他更好的Nginx规则?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果没有看到实际的日志文件条目,很难分辨出模式不匹配的位置。首先,我建议使用不区分大小写的模式匹配~*,而不仅仅是~。你应该能够逃脱不逃避Nginx中的句点/点。并且您可以降低特异性,使您的模式投射更广泛的网络。匹配“get-free-traffic”就足以匹配“get-free-traffic-now.com”和其他变体“get-free-traffic-now.net”,“get-free-traffic-today.com”,等

if ($http_referer ~* 7makemoneyonline|semalt.com|get-free-traffic) {
  return 403;   
}