Nginx防盗链根据UA屏蔽恶意User Agent请求(防蜘蛛)
相对于 Apache,Nginx 占用的系统资源更少,更适合 VPS 使用。恶意盗链的 User Agent 无处不在,博客更换到 WordPress 没几天,就被 SPAM(垃圾留言)盯上,又被暴力破解后台用户名密码。以前介绍过 Apache 使用 .htaccess 屏蔽恶意 User Agent,今天来介绍 Nginx 屏蔽恶意 User Agent请求的方法。
先上规则&注释
#禁用未初始化变量警告 uninitialized_variable_warn off; #匹配各种 bad user agent,返回403错误 if ($http_user_agent ~* "embeddedwb|NSPlayer|WMFSDK|qunarbot|mj12bot|ahrefsbot|Windows 98|MSIE 6.0; Windows 2000|EasouSpider|Sogou web spider") { return 403; } #匹配POST方法,给变量iftemp赋值 if ($request_method ~* "POST") {set $iftemp X;} #匹配 bad user agent,给变量iftemp赋值;这几个UA主要是发垃圾留言的 if ($http_user_agent ~* "MSIE 6.*NET|MSIE 7.*NET|MSIE 6.*SV1|MSIE 6.0; Windows NT 5.0") { set $iftemp "${iftemp}Y"; } #如果变量iftemp符合上面两个条件,返回403错误 if ($iftemp = XY) {return 403;}
禁用未初始化变量警告,不然会不停写入警告到错误日志error.log,如下
代码如下:
2014/09/11 09:21:11 [warn] 18649#0: *132 using uninitialized “iftemp” variable, client: 220.181.51.209, server: www.wilf.cn, request: “GET /wp-content/themes/dazzling/inc/fonts/glyphicons-halflings-regular.woff HTTP/1.0”, host: “www.wilf.cn”, referrer: “http://www.wilf.cn/” 2014/09/11 09:21:11 [warn] 18649#0: *92 using uninitialized “iftemp” variable, client: 66.249.79.55, server: www.wilf.cn, request: “GET /page/14?mod=pad&act=view&id=741 HTTP/1.1”, host: “www.wilf.cn”
Nginx 规则不支持2个以上的条件判断,绕个路,通过给变量两次赋值来完成2个条件判断。
Nginx 规则也是使用正则表达式匹配字符串,分析日志,根据需要自己定制。
检验成果的时候到了
代码如下:
183.60.214.51 ― [10/Sep/2014:22:16:18 +0800] ― Bytes: 13507 ― GET /?mod=pad&act=view&id=460 HTTP/1.1 ― 403 ― C ― Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html) ― C ― C 220.181.125.169 ― [11/Sep/2014:09:38:15 +0800] ― Bytes: 169 ― GET /page/51?mod=wap&act=AddCom&inpId=860 HTTP/1.1 ― 403 ― C ― Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07) ― C ― C
EasouSpider 和 Sogou web spider,再也不见。
相关推荐
WasteLand 2020-06-13
咻咻ing 2020-05-10
jxiao000 2020-04-30
SZStudy 2020-04-16
SZStudy 2020-02-10
houjinkai 2020-01-03
aolishuai 2019-12-25
大白配小猪 2019-11-12
yongzhang 2019-10-25
单调的低调 2019-09-09
fenghuoliuxing0 2019-09-07
xxuyuan 2011-07-02
CSDNMrWang 2011-06-13
chumeng 2011-06-04
daidaizhuzhu 2011-05-28
loveyy 2013-08-10
xxuyuan 2011-03-22
yanghan 2012-12-27