爬虫与反爬虫的攻防对抗

一、爬虫的简介

1 概念

爬虫最早源于搜索引擎,它是一种按照一定的规则,自动从互联网上抓取信息的程序,又被称为爬虫,网络机器人等。按爬虫功能可以分为网络爬虫和接口爬虫,按授权情况可以分为合法爬虫和恶意爬虫。恶意爬虫主要以获取对方本不愿意被大量获取的网页数据为主要目的,可能给相关服务器性能造成极大损耗。如今数据资源越来越珍贵,利用爬虫技术爬取有价值的数据,成为很多公司弥补自身先天数据短板、提高自身估值的不二选择。

网页爬虫:根据网页上的超链接进行遍历爬取

接口爬虫:通过构造特定API接口请求数据获得大量网页数据信息

2 发展现状

爬虫流量目标行业分布:
image.png

其中,出行类中的12306票务信息被各类抢票软件疯狂地爬取,高峰时刻每天的访问量达到千亿次。

在社交类中,通过网络爬虫技术可以指挥一帮网络机器人关注某人的微博、公众号等,进行点赞、关注或者留言,制造大量的僵尸粉。

在电商类中,比如在“比价平台”“聚合电商”和“返利平台”等平台上,当用户搜索一个商品时,这类聚合平台会自动把各个电商的商品都放在你面前供你选择,同样利用的是爬虫技术。

可以从下面的数据中看到,爬虫的“重灾区”在前面说到的12306、微博、淘宝等大型平台,就连最高人民法院旗下的“中国裁判文书网”也难逃爬虫侵扰,以至于用户怨声载道。

image.png

3 攻防技术分析

事实上,最早的爬虫起源于搜索引擎。搜索引擎是善意的爬虫,可以检索你的一切信息,并提供给其他用户访问。为此他们还专门定义了robots.txt文件,作为君子协定,这是一个双赢的局面。

然而事情很快被一些人破坏了。爬虫很快就变的不再“君子”了。

爬虫与发爬虫,一方为了拿到数据,另一方为了防止爬虫拿到数据,就催生了攻防技术的不断发展。
目前业内爬虫技术方面,总体分为三大类,最早的就是通过修改headers攻击静态网页,包括多线程,代理ip,伪造cookie和购买多账号等常见手段,对应的反爬虫技术出现了限制IP和ua,限制登录,限制频率等。

后来防守方出现了验证码,很长一段时间爬虫处于劣势,随着机器视觉的发展和打码平台的出现,这种防控也很容易被绕过,黑产进入了模拟用户行为的阶段。

再后来,防守方又出现了动态加载技术,通过简单爬虫是看不到被保护信息的,爬虫就利用了selenium和phantomjs工具,这两个本来是网页自动化测试工具,被用来爬虫,一般爬虫到了这个段位,反爬虫就很难再有有效措施识别爬虫。

技术层面,越原始的,成本越低,性能也非常好,目前是通用的网络爬虫;而高段位的,一般成本高,性能差,一般称为聚焦网络爬虫。

image.png

从上面图上可以看到,爬虫与反爬虫,是一场无休止之战。因此要想防住爬虫,就要从根源入手。

二、反爬虫的难点

目前阶段,反爬虫的难点在于技术和业务两个方面。

技术上,一个是现有的常见反爬手段都已被成熟的技术工具攻破,另一个就是黑产已经形成了完整的产业链,分工明确,而且从业人员数量庞大。

image.png

业务上,业务安全本质上不是非黑即白的问题,而是要找到划分的边界,如果误杀率过高,可能对运营指标产生影响。

image.png

三、解决方案

一般来说,通过验证码来反爬,其核心原理是爬虫通过网页抓取数据,当某一用户访问次数过多后,系统就会怀疑你是否是真实用户,也就是说会让请求跳转到验证码页面,只有输入正确的验证码才能继续访问网站,而验证码诞生之初的目的就是为了区分人和机器的区别,自然也就能拦截爬虫。

但随着AI 技术的深入,这样的反爬技术也很容易被破解,这个时候就需要我们比对方更智能、更聪明。

因此,要想防住爬虫,就要从根源入手。

1 方案架构

首先我们要知道爬虫平台间的数据如何传输,才能在此基础建立安全可信的通信链路,其次,在保证安全可信的通信链路基础上,需要考虑是否支持多种风险的快速判断,是否可以进行回溯及服务监控;最后,在与爬虫的对抗层面,需要考虑是否能够进行快速的对抗调整,并将相应的人机验证工具作为支撑。

也因此,我们就可以在持续不断的攻防对抗间思考出一套反爬体系建设方案

在客户端,我们对app、web源码进行防护,防止漏洞利用、逆向破解、接口暴露等。同时,在客户端集成设备指纹,对每一台设备形成全球唯一的设备编码,识别黑产作弊机器。并在此基础上集成滑动验证码,能够直接有效阻挡机器的访问行为。

通信链路上集成安全SDK,保护传输数据安全,识别伪造数据、非法请求。

实时风险决策平台,其实可以认为是一种防护规则配置平台,通过针对不同行业业务及事件的需求,编制不同的安全规则及策略。

整体工作流程如图所示,业务请求经过业务系统转发到实时决策引擎,决策引擎将判断结果返回给业务系统,业务系统自行决定处置措施。

image.png

多环节防控,降低误杀率的同时,保证防控效果。

2 方案优势

image.png

  1. 就是抛开传统只限于代码层面的对抗,针对装备手段,从设备层面入手,对黑产降维打击
  2. 实施了全链路防护,避免单一节点被攻破
  3. 各个环节数据共享,能够进行实时态势感知,动态防御
  4. 最前端的验证码拦截明显的机器行为,实时决策拦截灰度爬虫行为,最终实现黑灰产的高精度识别,在提高风控效果的同时,保证较低误杀率。

四、反爬需要所有人共同努力

爬虫贡献了互联网 50% 的流量,它对于互联网的繁荣功不可没。但该技术同时也因“用途”而充满争议。爬虫是一项见不得“阳光”的技术,它广泛运用,却少有人愿意承认在使用它。因为它常常被用作非法收集信息的工具,站上数据隐私、数据安全的对立面。

不难看出,爬虫技术本无罪,有罪的是那些拿爬虫来作恶的人。一起努力,抵抗“恶意爬虫”!

如果需要反爬虫解决方案,戳这里>>>反爬虫解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28749.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PDF】HTML通过dom节点生成pdf

1、简要描述 上一篇博客主要讲的是pdf文件转换成canvas,然后进行相关的画框截图操作。 【PDF】Canvas绘制PDF及截图 本篇博客主要讲html中dom如何生成pdf文件(前端生成pdf),后端生成pdf当然也可以,原理也是将html网…

IntelliJ IDEA 版本控制

IntelliJ IDEA 版本控制(VCS)日常使用方法备忘 1、搁置更改 2、移至另一个更改列表 对于工程项目中的配置文件,已经在本地修改但是不能提交,如果在提交项目代码时全选变更的文件,可能会误提交配置文件,此…

Monocular 3D Object Detection with Depth from Motion 论文学习

论文链接:Monocular 3D Object Detection with Depth from Motion 1. 解决了什么问题? 从单目输入感知 3D 目标对于自动驾驶非常重要,因为单目 3D 的成本要比多传感器的方案低许多。但单目方法很难取得令人满意的效果,因为单张图…

Stable Diffusion + EbSynth + ControlNet 解决生成视频闪烁

一、安装 1.1、安装ffmpeg 下载地址: 解压,配置环境变量 E:\AI\ffmpeg\bin 检查是否安装成功 1.2、安装SD的 EbSynth 插件 插件地址 https://github.com/s9roll7/ebsynth_utility 报错:ModuleNotFoundError: No module named extension…

13.postgresql--函数

文章目录 标量示例复合示例有返回值函数返回voidRETURN NEXT ,RETURN QUERYRETURN EXECUTEIF THEN END IFFOREACH,LOOPSLICE (1)如果函数返回一个标量类型,表达式结果将自动转行成函数的返回类型。但要返回一个复合(行&#xff09…

OpenCVForUnity(六)图像的对比度和亮度

文章目录 前言公式讲解Unity嵌套循环实现使用convertTo实现亮度和对比度调整:伽马矫正 前言 图片处理中这也是非常常用的功能,下面我们一起来学习一下如何在OpenCVForUnity中修改图像的对比度亮度 图像处理中的常见算子可以将一个或多个输入图像转换为输出图像。这些变换包括点…

RISCV - 1 RV32/64G指令集清单

RISCV - 1 RV32/64G指令集清单 1 RV32/64G指令类型2 RV32I 基本指令集3 RV64I基础指令集(除了RV32I)4 RV32/RV64 Zifencei标准扩展5 RV32/RV64 Zicsr标准扩展6 RV32M标准扩展7 RV64M标准扩展(除了RV32M)8 RV32A标准扩展9 RV64A标准扩展(除了R…

(栈队列堆) 剑指 Offer 09. 用两个栈实现队列 ——【Leetcode每日一题】

❓ 剑指 Offer 09. 用两个栈实现队列 难度:简单 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead …

机器学习32:《推荐系统-V》再谈召回、打分和重排

在《机器学习28:推荐系统-概述》一文中,笔者概述了推荐系统的基本术语和一般架构,通过【推荐系统 I~IV】系列课程的学习,相信读者对推荐系统已经有了一定的理解。本节,我们再来回顾一下推荐系统的核心环节—…

泛在电力物联网、能源互联网与虚拟电厂

导读:从能源互联网推进受阻,到泛在电力物联网名噪一时,到虚拟电厂再次走向火爆,能源领域亟需更进一步的数智化发展。如今,随着新型电力系统建设推进,虚拟电厂有望迎来快速发展。除了国网和南网公司下属的电…

浅谈自动化测试工具 Appium

目录 前言: 一、简单介绍 (一)测试对象 (二)支持平台及语言 (三)工作原理 (四)安装工具 二、环境搭建 (一)安装 Android SDK &#xff0…

欧姆龙以太网模块如何设置ip连接 Kepware opc步骤

在数字化和自动化的今天,PLC在工业控制领域的作用日益重要。然而,PLC通讯口的有限资源成为了困扰工程师们的问题。为了解决这一问题,捷米特推出了JM-ETH-CP转以太网模块,让即插即用的以太网通讯成为可能,不仅有效利用了…