微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx块从引用

我需要阻止所有的http连接,谁有引用click2dad.net。 我写在mysite.conf中:

location / { valid_referers ~.*http://click2dad.net.*; if ($invalid_referer = ''){ return 403; } try_files $uri $uri/ /index.PHP?$args; }

但我仍然看到在Nginx日志中:

HTTP/1.1" 200 26984 "http://click2dad.net/view/VUhfCE4ugTsb0SoKerhgMvPXcmXszU"

200,而不是403

因为阻止来自click2dad.net的所有客户端是正确的?

最佳的OS应用程序出站SMTP数据包捕获?

使用.htaccess文件阻止错误的请求

应该注意的是,表达式将与在“http://”或“https://”之后开始的文本匹配http://Nginx.org/en/docs/http/ngx_http_referer_module.html

正确的配置:

location / { valid_referers click2dad.net*; if ($invalid_referer = ''){ return 403; } try_files $uri $uri/ /index.PHP?$args; }

valid_referers解决方案的作品,但对我个人来说,很难保持这样一个长长的黑名单。 另一种解决方案是使用ngx_http_map_module模块。 在ubuntu 14.04 Nginx发行版下,你可以创建一个/etc/Nginx/blacklist.conf文件

# /etc/Nginx/blacklist.conf map $http_referer $bad_referer { hostnames; default 0; # Put regexes for undesired referers here "~social-buttons.com" 1; "~semalt.com" 1; "~kambasoft.com" 1; "~savetubevideo.com" 1; "~descargar-musica-gratis.net" 1; "~7makemoneyonline.com" 1; "~baixar-musicas-gratis.com" 1; "~iloveitaly.com" 1; "~ilovevitaly.ru" 1; "~fbdownloader.com" 1; "~econom.co" 1; "~buttons-for-website.com" 1; "~buttons-for-your-website.com" 1; "~srecorder.co" 1; "~darodar.com" 1; "~priceg.com" 1; "~blackhatworth.com" 1; "~adviceforum.info" 1; "~hulfingtonpost.com" 1; "~best-SEO-solution.com" 1; "~googlsucks.com" 1; "~theguardlan.com" 1; "~ix.wiki" 1; "~buy-cheap-online.info" 1; "~Get-Free-Traffic-Now.com" 1; }

然后将其包含在/etc/Nginx/Nginx.conf文件中:

# /etc/Nginx/Nginx.conf http { # ... include blacklist.conf; # ... }

完成之后,你可以在你的Nginx站点检查$bad_referer条件:

# /etc/Nginx/sites-enabled/mysite.conf server { # ... if ($bad_referer) { return 444; } # ... }

为了确保这些东西有效,你可以在你的shell中执行一个类似的命令:

$ curl --referer http://www.social-buttons.com https://example.org

…这应该给你:

curl: (52) Empty reply from server

在这里写了一个关于这个解决方案的博客帖子https://fadeit.dk/blog/2015/04/22/Nginx-referer-spam-blacklist/ 。

也许你可以试试这个配置:

location / { valid_referers ~click2dad.net; if ($invalid_referer){ return 403; } try_files $uri $uri/ /index.PHP?$args; }

无论如何,正确的答案只是在这文件。 http://Nginx.org/en/docs/http/ngx_http_referer_module.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐