WebSocket 反爬虫

目录

  • WebSocket握手验证反爬虫
  • WebSocket 消息校验反爬虫
  • WebSocket Ping 反爬虫
  • 总结

WebSocket握手验证反爬虫

!

HTTP协议

请求头

服务器端创建 socket 服务后监听客户端,使用 while True 的方式读取客户端发送的消息

然后对服务器端发送的握手请求进验证,如果验证通过,则返回状态码为 101 的响应头,否则返回状态码为 403 的响应头

客户端按照 WebSocket 规范生成握手信息并向服务器端发送握手请求,然后读取服务器端推送的消息,最后验证握手信息

服务器端和客户端实际上可以不遵守这些约定

比如服务器可以在校验握手信息是增加对客户端 User-Agent 或 Referer (请求头)的验证,如果客户端发送的握手请求中并没有对应的信息,则拒绝连接

WebSocket 消息校验反爬虫

握手成功之后,双端就可以开始互推消息了

WebSocket 只需要完成 1 次握手,就可以保持长期连接,在后续的消息互发阶段是不需要用到 HTTP 协议的

其实消息互发阶段也是可以对客户端身份进行校验的,这是因为客户端所获取的消息是有服务器端主动推动的

如果服务器端不主动推送,那么客户端就无法获取信息

可以在服务器端新增一个逻辑:握手结束后客户端发送特定的消息,服务器端对该消息进行校验,校验通过则将服务器端的数据推送给客户端,否则不做处理

如果我们将客户端发送的新消息修改为数据仓库中没有的键,那么服务器端就不会给客户端推送消息

WebSocket Ping 反爬虫

通过刚才我们知道,WebSocket 是可以保持长期连接的,但是服务器端不可能保持所有客户端永久连接这太耗费资源了,

有没有一种方法可以检查客户端的状态呢?

WebSocket 协议规范中约定,服务器端可以向客户端发送 Ping 帧,当客户端收到 Ping 帧时应当回复 Pong 帧

如果客户端不回复或者回复的并不是 Pong 帧,那么服务器端就可以人为客户端异常,主动关闭该连接

? 通常,Ping 帧和 Pong 帧的 Plyload Data 中是没有内容的,所以只要目标服务器发送 Ping 帧时,客户端回复没有任何内容的 Pong 帧即可

总结

信息校验主要解决了客户端身份鉴别、数据来源判断和请求的合法性判断等问题,避免数据接收者使用被篡改过得数据,保证数据的有效性

无论是 HTTP 协议还是 WebSocket 协议,都需要对客户端身份进行鉴别,信息校验无疑是最合适的方法

WebSocket 反爬虫的产生跟协议规范有很大的关联,由于协议中的一些规范并不是强制实现的,所以开发者可以在服务器端与客户端握手和消息互传的过程叫做验证

原文地址:https://www.cnblogs.com/kai-/p/12242612.html

时间: 2024-10-08 05:51:25

WebSocket 反爬虫的相关文章

反爬虫和抗DDOS攻击技术实践

导语 企鹅媒体平台媒体名片页反爬虫技术实践,分布式网页爬虫技术.利用人工智能进行人机识别.图像识别码.频率访问控制.利用无头浏览器PhantomJS.Selenium 进行网页抓取等相关技术不在本文讨论范围内. Cookie是什么 大家都知道http请求是无状态的,为了让http请求从"无状态" to "有状态" , W3C 在 rfc6265 中描述了整个http协议的状态机制,既从客户端(通常是浏览器)到服务器端的流转过程,cookie 的引入使得 服务器在 接

反爬虫破解系列-汽车之家利用css样式替换文字破解方法

网站: 汽车之家:http://club.autohome.com.cn/ 以论坛为例 反爬虫措施: 在论坛发布的贴子正文中随机抽取某几个字使用span标签代替,标签内容位空,但css样式显示为所代替的文.这样不会 影响正常用户的阅读,只是在用鼠标选择的时候是选不到被替换的文字的,对爬虫则会造成采集内容不全的影响. 原理分析: 先看一下span标签的样式 截图是火狐浏览器的firebug的html面板.我们可以看到正文中每个span标签的样式都是一个文字,我们只需要找到每个 span标签的cla

第7章 Scrapy突破反爬虫的限制

7-1 爬虫和反爬的对抗过程以及策略 Ⅰ.爬虫和反爬虫基本概念 爬虫:自动获取网站数据的程序,关键是批量的获取. 反爬虫:使用技术手段防止爬虫程序的方法. 误伤:反爬虫技术将普通用户识别为爬虫,如果误伤过高,效果再高也不能用. 成本:反爬虫需要的人力和机器成本. 拦截:成功拦截爬虫,一般拦截率越高,误伤率越高. Ⅱ.反爬虫的目的 初级爬虫----简单粗暴,不管服务器压力,容易弄挂网站. 数据保护 失控的爬虫----由于某些情况下,忘记或者无法关闭的爬虫. 商业竞争对手 Ⅲ.爬虫和反爬虫对抗过程

网站常见的反爬虫和应对方法

这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度. 通过Headers反爬虫  从用户请求的Headers反爬虫是最常

网站反爬虫

因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,大大小小叫得出来名字得就几十种,还有各种不知名的几千几万种,对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的. 一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬

爬虫与反爬虫

转自:https://mp.weixin.qq.com/s/-w-yC6PCdTOpfKS8HZEleA 前言 爬虫与反爬虫,是一个很不阳光的行业. 这里说的不阳光,有两个含义. 第一是,这个行业是隐藏在地下的,一般很少被曝光出来.很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实.这可能是出于公司战略角度来看的,与技术无关. 第二是,这个行业并不是一个很积极向上的行业.很多人在这个行业摸爬滚打了多年,积攒了大量的经验,但是悲哀的发现,这些经验很难兑换成闪光的简历.面试的时候,

python解决网站的反爬虫策略

网站的反爬虫策略: 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度(防止静态爬虫使用ajax技术动态加载页面). 1.从用户请求的Headers反爬虫是最常见的反爬虫策略. 伪装header.很多网站都会对Headers的User-Agent进行检测,还有一部分网站

常见的反爬虫和应对方法

0x01 常见的反爬虫 这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度. 0x02 通过Headers反爬虫 从用户

网站常见的反爬虫和应对方法(转)

在我们的对2016年大数据行业的预测文章<2016年大数据将走下神坛拥抱生活 资本青睐创业机会多>里,我们曾经提到“在2016年,防止网站数据爬取将变成一种生意.”.今天我找到了来自”BSDR“的一篇文章,文章里主要介绍了常见的反爬虫应对方法,下面是正文. 常见的反爬虫 这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采