屏蔽指定的user_agent的访问

背景

蜘蛛爬虫频繁访问网站会严重浪费服务器的带宽和资源。通过判断user agent,在nginx、apache中禁用这些蜘蛛可以节省一些流量,也可以防止一些恶意的访问

nginx

1、进入/opt/sudytech/nginx/conf目录下,修改nginx.conf在server段中添加如下配置

#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
  return 403;
}
#禁止指定UA及UA(user agent)为空的访问
if ($http_user_agent ~* "BaiduSpider|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|360Spider|^$" )
{
  return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
  return 403;
}
2、nginx重启

3、测试通过curl -A 可以随意指定自己这次访问所宣称浏览器信息 -v参数可以打印出User-Agent头信息
[root@localhost conf]# curl -v -I -A "BaiduSpider" 192.168.11.134
.................
> User-Agent: BaiduSpider
> Host: 192.168.11.134
> Accept: */*
> 
< HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
..........

apache

#禁止指定UA及UA(user agent)为空的访问
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (^$|360Spider) [NC]
RewriteRule ^(.*)$ - [F]

#禁止trace、track、options的抓取
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
RewriteRule .* - [F]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值