ZCMS反爬虫机制

ZCMS反爬虫模块支持多种反爬虫机制,能够屏蔽99%以上的爬虫访问:

1. 对Referer和User-Agent进行检查

ZCMS将检查http头中的Referer和User-Agent项,对于无Referer、不符合规则的Referer、不符合规则的User-Agent重定向到验证码输入页面,只有输入正确的验证码才可以进行后续浏览。

2. 基于IP地址的访问限制

ZCMS支持基于IP地址的访问限制策略,默认同一个IP地址每秒打开页面数超过3个即会重定向到一个验证码输入页面,只有输入正确的验证码才可以进行后续浏览。

3. 基于Cookie的访问限制

ZCMS支持基于Cookie的访问限制策略,会在每天第一次访问时向浏览器写入特定Cookie,以后每一次访问都要求携带有特定Cookie,未携带特定Cookie或者同一个IP地址频繁变化Cookie都将重定向到验证码输入界面。

4. 内容Javascript混淆

ZCMS支持对列表页和内容详细页进行Javascript混淆,将列表页和内容详细页中的内容由普通的HTML代码自动混淆成Javascript代码,正常用户浏览时Javascript代码会得到执行并渲染成正常的HTML内容,但大部分爬虫不能正确执行这些Javascript代码。

5. 基于隐藏链接的行为识别

ZCMS支持在列表页和内容详细页放入隐藏链接和颜色透明链接,这些链接的形式和正常的URL非常相似,正常浏览者不会去点击这些链接,但绝大部分爬虫会解析这些链接并尝试抓取,从而被ZCMS识别为爬虫。

6. 基于URL规则的行为识别

ZCMS支持基于URL规则的行为识别,正常浏览行为在访问网站时除了详细页以外,还会下载大量的图片、JS文件、CSS文件等资源文件,而爬虫不会去下载这些资源文件。ZCMS通过随机改变部分资源的最后修改时间诱导浏览器下载这些资源文件,而没有去下载的则会被识别为爬虫。

7. 基于时间分布的行为识别

人对单个网站的正常浏览行为在时间分布上会有一定规律,通常会在集中的几个时段内访问。如果检测到某个IP或者特定Cookie在时间上的分布比较均匀且时间跨度很大(例如一天超过18小时都有访问记录),则会被识别为爬虫。

8. 伪数据

ZCMS对于识别测出的爬虫行为,将不重定向验证码也返回错误信息,而是采用自动生成伪数据的方式向爬虫返回正常的200状态响应结果,以提高爬虫数据分析的难度。