以下是我用来阻止Semalt等垃圾邮件引荐人访问我网站的方法。
在Server指令下,我有以下(不完整的引用列表):
queue.notify()
这条规则似乎无法奏效,而且我仍然可以从中受到点击。这与我在其中创建过滤器的Google Analytics无关,我知道。但是,事实并非如此,我每天都会在日志中看到这些引用,并且能够访问我的网站,因此这些垃圾邮件发送者会向我的服务器发出实际请求。他们如何绕过Nginx规则?我验证了上面的代码并将我的其他网站放到了列表中,然后我将自己推荐到第一个网站并被阻止。那它是如何为我工作而不是为他们工作?是否有其他更好的Nginx规则?
谢谢。
答案 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;
}