[英]How to block referral spam using Nginx?
我在Nginx服務器下運行兩個mongrels。 我不斷收到不存在文件的請求。 IP地址經常更改,但引用URL保持不變。 我想解決這個問題。
https://calomel.org/nginx.html
阻止大多數“推薦人垃圾郵件” - “更多的是煩惱而不是問題”
nginx.conf
## Deny certain Referers (case insensitive)
## The ~* makes it case insensitive as opposed to just a ~
if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo))
{ return 403; }
隨着列表變長,使用Nginx 映射模塊會更高效,更易於管理。
把它放在你的http {}塊中:
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;
"~i-x.wiki" 1;
"~buy-cheap-online.info" 1;
"~Get-Free-Traffic-Now.com" 1;
}
把它放在你的服務器{}塊中:
if ($bad_referer) {
return 444; # emtpy response
}
它對我有用。
我創建了用於檢查黑名單中的傳入IP的模塊https://github.com/oneumyvakin/ngx_http_blacklist_lookup_module
它使用來自projecthoneypot.org,blocklist.de和uceprotect.net的黑名單
在我需要根據行為而不是防火牆可以自行解決的其他任意規則阻止人員之前,我一直處於類似的情況。
我解決這個問題的方法是讓我的邏輯(在你的情況下是Rails)做阻塞......但是很長一段時間:
我這樣做的原因(而不僅僅是給予Django權限來改變防火牆配置)的原因很簡單:安全性。 如果我的應用程序被黑了,我不希望它傷害其他任何東西。
bash腳本是這樣的:
exec < /path/to/my/djago-maintained/block-list
while read line
do
iptables -A INPUT --source $line/32 -j DROP
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.