当前位置: 移动技术网 > 网络运营>服务器>nginx > Nginx防盗链根据UA屏蔽恶意User Agent请求(防蜘蛛)

Nginx防盗链根据UA屏蔽恶意User Agent请求(防蜘蛛)

2019年04月20日  | 移动技术网网络运营  | 我要评论

99久久免费热在线精品,中国一日,开心动漫网

相对于 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 — – — mozilla/5.0 (compatible; easouspider; +http://www.easou.com/search/spider.html) — – — –
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 — – — sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07) — – — –

easouspider 和 sogou web spider,再也不见。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网