我们做网站,往往都是机器比真人少,不仅影响我们查看数据的真实性,也影响网站服务器的负载,其中很多未知名的机器天天爬,不知道是采集还是扫漏洞、或者是撒网式攻击注入,让人烦不胜烦!那么我们有什么好的办法呢?唯一的办法就是对该类访问进行屏蔽。但是通过IP来访问,实在是收效甚微,主要原因是我们没有大量的数据来进行分析各IP的访问行为。
对于一些高明的机器访问,我们很难判断是真人还是机器,但是我们可以通过UA来对某些访问者进行限制。虽然不能全面禁止恶意机器的访问,但是大部分无意义的访问者是可以拦截在网站之外的。
一、判断蜘蛛的真实性
很多机器访问的时候会模拟百度蜘蛛、谷歌蜘蛛进行访问,这里我们就需要对蜘蛛真实性进行有效的识别。其中最有效的办法是通过收集各大搜索引擎的全部蜘蛛IP来进行匹配,但是要收集蜘蛛的所有IP比较困难,除非搜索引擎公布了所有蜘蛛的IP,不然很难做到全面。最简单的办法则是对蜘蛛的IP进行反查询,查询其DNS解析记录。比如:
百度蜘蛛:DNS记录需包括(baidu.com)
谷歌蜘蛛:DNS记录需包括(googlebot.com)
必应蜘蛛:DNS记录需包括(search.msn.com)
这里主要是针对模仿蜘蛛进行访问的机器,他既然选择模仿蜘蛛而避免被屏蔽,说明其行为的目的并不单纯,大可放心拦截封禁!
二、非法UA特征
对于一些没有模拟知名蜘蛛的普通访问者,凡是有一些特征的UA,基本可以直接屏蔽:
AhrefsBot
AwarioBot
BLEXBot
Barkrowler
CensysInspect
Criteo
DataForSeoBot
DigExt
DnyzBot
DotBot
ExtLinksBot
Ezooms
FlightDeckReports
Go-http-client
Grapeshot
Heritrix
HttpClient
HubSpot
InternetMeasurement
Knowledge AI
Linguee Bot
MJ12bot
MauiBot
MegaIndex
RepoLookoutBot
SemrushBot
SurdotlyBot
Web-Crawler
WellKnownBot
Yellowbrandprotectionbot
ZoominfoBot
axios
fasthttp
github
libcurl
paloaltonetworks
python
seokicks
serpstatbot
webprosbot
Go-http-client
python-requests
ubuntu
Java
DataForSeoBot
MJ12bot
AhrefsBot
BLEXBot
DotBot
Barkrowler
Adsbot
SM-G900P
SemrushBot
PetalBot
GPTBot
Apache-HttpClient
ds-robot
amazonbot
msray-plus
Go-http-client
YandexBot
Python
SkyworkSpider
ChatGLM-Spider
Knowledge AI
Linguee Bot
Wordup-1
PycURL
curl/7.29.0
okhttp
ChatGLM-Spider
python
Python-urllib/3.10
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2)
Dalvik/2.1.0
Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
Go-http-client/1.1
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
Mozilla/5.0 (compatible; iaskspider/1.0; MSIE 6.0)
这里面有ai蜘蛛、服务器机器UA、go和python等服务UA、很多linux系统的机器UA是空,比如宝塔的linux机器访问是空UA,所以空UA基本也是可以屏蔽掉的。当然,我这里分享的东西可能还不够全面,也可能有重复的,其余的等待大家补充!
以上本篇文章的全部内容了,感兴趣的小伙伴可以看看,更多精彩内容关注腾创网www.tengchuangw.com
暂无评论内容