数据防护总结(PC)

简介: 数据防护总结(PC)

为什么需要数据防护?


当今如今大数据时代,数据重要不言而喻,网页和 App 作为主流的数据载体,如果其数据没有任何的保护措施,在爬虫工程师解决了一些基本的反爬如User-Agent、cookies、验证码等的防护措施之后,那么数据依旧可被轻易的获取。


数据防护主要体现在何处?


数据防护可简略的划分为请求防护、数据内容防护、验证码


请求防护


  • User-Agent


  • Cookie


  • 签名验证


  • 握手验证


  • 协议


  • 。。。


数据内容防护


  • CSS字体偏移


  • SVG字体映射


  • 图片数据


  • 。。。


验证码


个人总结为以下几种类型,具体体现不在过多赘述。(注,几者之间无明显的分割标准,在此以侧重点划分)


  • 识别点选或输入型


  • 滑轨、滑块型


  • 短信或语音验证型



实现这一切的一切,这些究竟是基于什么实现的?这一切绝可能是凭空出现!!!

其实无论是ajax,User-Agent、还是Cookie等等大部分都是基于Javascript实现。而且由于JavaScript在客户端中为完全透明,用户可以随意的查看与调试,这无异于代码裸奔。虽然以上的反爬虫虽然不错,但如果仔细分析的,这难度也仅是“工作量”的问题。


Javascript防护分类


完全透明的JS代码,虽然可以有效的防止。但这还不够,其根本原因还是JavaScript为明文。而这一切的一切都是“治标不治本”,虽然可以但还不够。也正因为对JavaScript的各种防护,所以才让这些加密“动”起来,无法轻易的分析。对JavaScript“加密”可分为如下几种大类


代码压缩


JavaScript 压缩是指去除 JavaScript 代码中的不必要的空格、换行等内容,或者将一些可能公用的代码进行处理实现共享,最后输出的结果都被压缩为几行内容,代码可读性变差,提高分析难度同时也能提高网站加载速度。


整体来说,压缩技术只能在很小的程度上起到防护作用,要想真正提高防护效果还得依靠混淆与加密技术。


代码混淆


代码混淆是增加分析难度而牺牲部分性能的一种方案,此方案大部分是体现在通过逻辑转换换等方式将代码转化为难以分析的代码。难以分析是混淆的目的,等价转换是需要确保混淆前后的代码需不影响运行的功能。对于混淆可以又分为如下四种:布局混淆、数据混淆、控制混淆、预防混淆


布局混淆


布局混淆指在源代码中删除原有无用代码,处理常量名、变量名函数名等标识符,加对于代码的阅读与分析。


无用代码:注释、调试信息、缩进、换行、无用函数与数据等


处理常量名、变量名函数名等标识符:


  • 标识重命名:将原有代码重命名为无具体意义的字符,例如 将name 重命名为a

注意点:


  • 作用域内标识符碰撞情况


小结


布局混淆并不会影响执行的过程、内存开销,甚至代码体积反而减少了。


数据混淆


JS拥有常见的7种数据类型,number、string、boolean、unfined、null、Object


数字混淆


数据混淆有常见:进制转换、数字分治、其他


  • 进制转换


将十进制转化为二进制、八进制、十六进制等,从而达到“混淆”的目的


  • 数学分治


简而言之就是将数拆开,例如 2 = 1 + 1,辅以数学公式等


  • 其他


重新赋值等


字符串混淆


字符串混淆常见的有编码转换、加密。常见的有hash、base64、md5等


boolean


我们都知道Boolean值为True、False。根据对boolean的处理,变成难以显示阅读的代码。例如![] = False, !![] = True.


控制混淆


控制混淆是指对程序的控制流进行转换变化,常见的方式有插入僵尸代码、控制流平坦化


插入僵尸代码:插入僵尸代码即插入无用的代码,增强调试难度


控制流平坦化:控制流平坦化,将原本的的执行流程平坦化。具体可自行搜索


预防混淆


主要体现在 提高反混淆的难度或检测现有混淆器中的漏洞设计


代码混淆总结


万变不离其宗,无论是代码压缩、代码混淆都离不开一个宗旨,在不改变原有的结果情况下对代码(这里指JS)进行处理。处理的方式包含但不限于,等值转换、运算分割。


设备指纹防护


设备指纹通过收集客户端设备的特征信息对用户与“机器人”进行甄别。web设备指纹主要包含:


浏览器端环境检测


浏览器设别标识


特征识别Hook


JS特征识别


做爬虫的朋友一定使用过NodeJs,这个工具。也时常借用与Nodejs来模拟JS,但Nodejs的api和指纹浏览器有不一样。如果服务端获取到客户端,那么就可以对指纹不一致的机器人,进行防范。


正如你我所知的那般,知道的越多,不知道的越多。


推荐阅读与了解


风控要略:互联网业务反欺诈之路


Jsfuck(github):https://github.com/aemkei/jsfuck


基于控制混淆和布局混淆的代码混淆系统-王岩(论文)


目录
相关文章
|
6月前
|
安全 网络协议 网络虚拟化
中心AP配置入侵防御实验
华为中心AP配置入侵防御实验
中心AP配置入侵防御实验
|
24天前
|
Kubernetes 安全 应用服务中间件
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
45 3
|
6月前
|
安全 网络协议 5G
华为WLAN 配置攻击检测功能示例
华为WLAN 配置攻击检测功能示例
|
监控 网络协议 安全
科来网络全流量安全分析设备的使用
科来网络全流量安全分析设备的使用
|
弹性计算 安全 Windows
基于阿里云云平台构建IPS入侵防御系统实现安全流量实时分析
Snort 是一个开源入侵防御系统(IPS),Snort IPS 使用一系列规则来帮助定义恶意网络活动,并利用这些规则来查找与之匹配的数据包,并为用户生成警报,Snort 也可以在线部署来阻止这些数据包。Snort有三个主要用途。作为一个像tcpdump一样的数据包嗅探器,作为一个数据包记录器--这对网络流量调试很有用,或者它可以作为一个完整的网络入侵防御系统,本篇文章将带着大家通过阿里云云平台来搭建一个开源入侵防御系统去实现安全流量的实时分析
1064 0
基于阿里云云平台构建IPS入侵防御系统实现安全流量实时分析
|
监控 BI 网络安全
体验升级:阿里云DDoS高防日志 - 运营中心:拓扑图、过滤与交互等
阿里云DDoS新BGP与高防的日志分析的运营中心报表再升级,以拓扑图的形式展示关键指标,支持交互与过滤、更好的大盘投屏方式
3328 0
|
安全 网络安全 数据安全/隐私保护
|
安全 应用服务中间件 nginx
数十万网站被利用发起CC攻击
——论pingback之卷土重来 云盾WAF团队
5990 0
PDA设备小知识--(IP)工业防护等级含义
    IP(INTERNATIONAL PROTECTION)防护等级是专门的工业防护等级,,它将电器依其防尘、防湿气之特性加以分级。IP防护等级是由两个数字所组成,第1个数字表示电器离尘、防止外物侵入的等级,第2个数字表示电器防湿气、防水侵入的密闭程度,娄字越大表示其防护等级越高,两个标示数字所...
1148 0