拥有蝴蝶效应的爬虫如何进行防护

2024-05-10 18:20

本文主要是介绍拥有蝴蝶效应的爬虫如何进行防护,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

美国气象学家爱德华·罗伦兹(Edward N.Lorenz)1963年在一篇提交纽约科学院的论文中分析了一个叫做蝴蝶效应的理论:“一个气象学家提及,如果这个理论被证明正确,一只海鸥扇动翅膀足以永远改变天气变化。”在以后的演讲和论文中他用了更加有诗意的蝴蝶。对于这个效应最常见的阐述是:

“一只南美洲亚马逊河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,可以在两周以后引起美国德克萨斯州的一场龙卷风。”

“蝴蝶效应”主要是关于混沌学的一个比喻,也是蝴蝶效应的真实反应。不起眼的一个小动作却能引起一连串的巨大反应——由于误差会以指数形式增长,在这种情况下,一个微小的误差随着不断推移造成了巨大的后果。

在互联网的世界中,蝴蝶效应的呈现则更为明显,身为互联网使用者,你的每一次点击,每一个打开,每一个保存与分享都不仅仅只是点击、打开、保存、分享,它们都将汇集成为数据,成为你互联网畅游的路径。

而对于企业来说,由上述数据推导出你的用户画像(根据你的社会属性、生活习惯和消费行为等信息而抽象出的一个标签化的用户模型)早已不是难事。

不过你也无需担忧,对于大多数企业而言,一两个行为标本作用不大,企业所需要的是一个甚至多个受众群体的大数据行为模型。


最初,爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,帮助搜索引擎作为一个辅助人们检索信息的工具。不过,正如同光明与黑暗同时诞生、出生与死亡同存于这个世界,爬虫的出现,也带来恶意爬虫的降生。

以下仅针对互联网业务风控层面阐述。

爬虫是所有攻击链中的重要构成,无论是采集竞争对手网站的数据,尝试破解用户口令还是自动下单,其实都离不开爬虫。

与传统金融类风控不同,会更加关心整个风险事件前端的问题,从最开始用户进入网站的行为进行分析。例如用户在页面的停留时间,是否多次修改输入的内容等,这些行为让风险判断的准确性有了巨大的提升。举个例子:

一、恶意爬取网站→ 注册用户扫描

虽然现在大部分平台的注册页面上会有图片验证码,在一定程度上可以防范爬虫自动化程序遍历手机号查询已注册的用户。

但在不同的终端上,还是可以通过简单的请求判断出用户是否已经注册。

二、爬取注册用户→ 进行业务欺诈

这个数据可以拿来做什么?

一方面,我们已知某个手机号码是某网站的注册用户,这个信息可以用作欺诈,比如模仿官方的服务号向用户发送欺诈短信骗取验证码短信,进行资金盗取。

另外,可以将这些数据向竞争对手出售,协助对方进行精准营销争夺用户。

三、业务欺诈→ 短信轰炸操作

国内每天都在发生大量的业务欺诈等案件,比如模仿官方的服务号向用户发送欺诈短信骗取验证码短信,进行资金盗取。

在欺诈手法中,还经常使用短信轰炸,比如在盗卡盗刷时,为了增加自己的作案时间,用大量的验证短信掩盖掉真正的消费短信,让受害者无法快速的发现并冻结自己的银行卡。

为了达到这种目的,攻击者会使用多家网站的短信接口对受害者发送短信,进而产生短信轰炸问题。

四、短信轰炸→ 账户盗用

个人账户被盗后:垃圾注册→ 产生羊毛党→ 刷单 ……

职业团队产生:爬取评论→ 差评师→ 恶意竞争攻 ……

其它模式→……

我们可以看到,最基础的爬虫所带来的,犹如那只南美洲亚马逊河流域热带雨林中的蝴蝶,拍一拍翅膀,或许只是抖抖阳光雨露,潇洒飞去,或许带来的就是一连串由它而起,又似乎与它无关的后续风暴。

那么要禁用爬虫吗?

显然不可能,如果没有爬虫的存在,你将不再有可能被搜索引擎抓到,在重度依赖搜索引擎的现代用户世界中,你也就成为了‘存在而不可见的’透明人。我相信这是所有企业都不愿意看到的。

所以,互联网世界正如真实世界一样,有好人和坏人,数据和爬虫技术本身没有好坏之分,关键点在于使用它们的那些人。根据网站内容的安全性及敏感性,区别对待爬虫是比较理想的措施。我们所做的事情,就是要把好人和坏人区分开来。

那么问题来了,如何防止恶意爬虫?

反爬机制主要有两大策略:

一、控制IP访问频率
最常见的基本都会使用代理IP来进行访问,但是对于一般人来说,几万ip差不多是极限了,所以一个ip还是可能多次请求。意味着爬虫需要付出更多的成本投入在IP资源上,IP越多,爬取的成本越高,自然容易劝退一部分人。

二、控制爬取策略
如果简单的只对目标数据进行爬取,反爬系统只要对访问情况和用户行为进行相关分析,其实很简单就能判定爬虫的那堆ip,你除了这堆数据什么都没访问,一看就不是正经用户。当然策略这个东西,就需要更多的博弈了。爬虫要增加迷惑度,需要去访问一些无关的东西,最后是研究正常用户的访问流程,然后模拟一遍。再者,控制速度。毕竟反爬系统的统计区间是肯定有限制的,不可能拿一个月的数据都分析一遍找出爬虫。反爬系统的存在,意义就在于增加这个成本。当然也需要衡量自身的成本,毕竟不能本末倒置,反爬成本太高就没价值了。

那网站一般用什么措施防范爬虫呢?主要有以下几种:

1.使用验证码机制
在登录、注册或搜索等重要操作时,引入验证码机制。验证码是一种动态生成的字符,用于验证用户是否为人类。通过在验证码中加入随机性和难以识别的字符,可以有效防止机器自动识别。

2.检测和限制访问频率
通过监控用户的访问频率和访问模式,可以识别出异常行为。一旦检测到异常,可以采取相应的措施,如暂时限制访问或发送警告信息。

3.使用IP黑白名单
对于已知的恶意IP地址,可以将其加入黑名单,禁止其对目标网站的访问。相反,对于可信任的IP地址,可以将其加入白名单,允许其对目标网站的访问。

4.检测和过滤恶意请求
通过分析用户请求的内容和特征,可以识别出恶意请求。例如,可以检测请求中是否包含大量的垃圾数据、是否包含特定的恶意关键词等。一旦检测到恶意请求,可以将其过滤掉或暂时限制其访问。

5.漏洞扫描服务

漏洞扫描服务(Vulnerability Scan Service)集Web漏洞扫描、操作系统漏洞扫描、资产内容合规检测、配置基线扫描、弱密码检测五大核心功能,自动发现网站或服务器在网络中的安全风险,为云上业务提供多维度的安全检测服务,满足合规要求,让安全弱点无所遁形。主要的优势在于:

一、扫描全面

涵盖多种类型资产扫描,支持云内外网站和主机扫描,支持内网扫描、智能关联各资产之间的联系,自动发现资产指纹信息,避免扫描盲区。

二、高效精准

采用web2.0智能爬虫技术,内部验证机制不断自测和优化,提高检测准确率,时刻关注业界紧急CVE爆发漏洞情况,自动扫描,最快速了解资产安全风险。

三、简单易用

配置简单,一键全网扫描。可自定义扫描事件,分类管理资产安全,让运维工作更简单,风险状况更清晰了然。

四、报告全面

清晰简洁的扫描报告,多角度分析资产安全风险,多元化数据呈现,将安全数据智能分析和整合,使安全现状清晰明了。

总之,防御爬虫攻击是一项复杂而重要的任务,需要采取多种技术策略和管理措施,以确保网站的安全性和稳定性。

这篇关于拥有蝴蝶效应的爬虫如何进行防护的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977198

相关文章

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

《Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursion)的问题及解决方案》使用Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursi... 目录解决方案‌1. 使用 @jsonIgnore 忽略一个方向的引用2. 使用 @JsonManagedR

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配