【问题标题】:How does Semalt spam referrers bypass Nginx rules?Semalt 垃圾邮件引荐来源网址如何绕过 Nginx 规则?
【发布时间】:2016-03-13 17:31:57
【问题描述】:

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

在 Server 指令下,我有以下内容(不完整的推荐人列表):

if ($http_referer ~ "7makemoneyonline\.com|semalt\.com|Get-Free-Traffic-Now\.com) { 
       return 403;
}

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

谢谢。

【问题讨论】:

    标签: nginx referrer-spam


    【解决方案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;   
    }
    

    【讨论】:

    • 感谢您的回答。您的意思是我不必插入域 tld?
    • 不适用于正则表达式。 “get-free-traffic”匹配“Get-Free-Traffic-Now.com”
    猜你喜欢
    • 2014-10-18
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2011-07-15
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多