mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-24 20:00:37 +00:00
docs: 大前端数据安全方案价值思考
This commit is contained in:
@@ -505,7 +505,7 @@
|
||||
|
||||
|
||||
|
||||
#### 关键步骤
|
||||
关键步骤
|
||||
|
||||
1. 先根据你们的产品找到常用的关键词,生成**词云**
|
||||
2. 根据词云,将每个字生成对应的 unicode 码
|
||||
@@ -574,7 +574,7 @@ h3,a{
|
||||
|
||||
|
||||
|
||||
## [Demo 地址](https://github.com/FantasticLBP/Anti-WebSpider)
|
||||
[Demo 地址](https://github.com/FantasticLBP/Anti-WebSpider)
|
||||
|
||||

|
||||
|
||||
@@ -600,8 +600,23 @@ $ node app.js
|
||||
|
||||
|
||||
|
||||
## 五、价值和思考
|
||||
|
||||
### 五、 App 端安全的解决方案
|
||||
其实经常有很多来自不同端的开发者和我聊安全问题。交流下来发现有些人可以明白设计的有点,有些人还是没有明白。这里我总结下:
|
||||
|
||||
- 爬虫与反爬技术,没有终点。都是需要在衡量 ROI 的情况下, 找到符合业务、技术现状的“最佳”解决方案
|
||||
- 每次刷新,页面显示的数据固定,但是网络接口数据、审查元素看到的数据,都是不断变化的。且汉字字符、数字字符都不一样
|
||||
- OCR 可以爬取数据,但是成本较高。同样可以利用其他策略,比如同一个浏览器 canvas 指纹的情况下,短时间多次请求某些数据,则认为是非法行为,可以延迟返回数据、返回错误数据、账号封锁等策略
|
||||
|
||||
爬虫工程师要么从接口爬取数据、要么观察分析页面结构找到目标数据的 xPath 获取 DOM 节点对应的数据。从这2个角度出发,当前的设计方案解决了该问题
|
||||
|
||||
可能有些人就会问:**爬虫工程师一般会不需要关心技术如何实现,直接用无头浏览器“原封不动”的去请求,直接拿到数据不就好了**
|
||||
|
||||
其实你仔细想想,无头浏览器是可以去请求,但是本质上就是对数据的只读而已。因为该方案的设计就是基于:**字体文件映射 + 数据线性加密**。**无头浏览器拿到的数据其实和审查元素看到的 DOM 节点内的数据是一个效果的。所以是无效数据。**
|
||||
|
||||
|
||||
|
||||
## 六、 App 端安全的解决方案
|
||||
|
||||
目前 App 的网络通信基本都是用 HTTPS 的服务,但是随便一个抓包工具都是可以看到 HTTPS 接口的详细数据,为了做到防止抓包和无法模拟接口的情况,我们采取以下措施:
|
||||
|
||||
@@ -670,17 +685,19 @@ $ node app.js
|
||||
|
||||
但是私钥在本地如何存放呢?想到的办法就是将关键密钥的字符串提高到较高的安全级别,比如这个文件用加密保存。接下来推荐一个[工具](https://github.com/RNCryptor/RNCryptor),可以将代码文件进行加密保存和解密访问。
|
||||
|
||||
还有:数据加密、压缩 + 自定义报文
|
||||
|
||||
|
||||
|
||||
## 六、 数据安全(反爬虫)之「防重放」策略
|
||||
|
||||
## 七、 数据安全(反爬虫)之「防重放」策略
|
||||
|
||||
虽然话题都是大前端时代的安全性,但是防重放策略篇幅较长,开了新的[章节](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter3%20-%20Server/3.8.md)。感兴趣的同学请移步查看。
|
||||
|
||||
|
||||
|
||||
|
||||
## 七、Canvas 反爬虫技术方案
|
||||
## 八、Canvas 反爬虫技术方案
|
||||
|
||||
> 后期打到白热化的时候,用的技术越来越匪夷所思。举个例子,很多人会提,做反爬虫会用到canvas指纹,并认为是最高境界。其实这个东西对于反爬虫来说也只是个辅助,canvas指纹的含义是,因为不同硬件对canvas支持不同,因此你只要画一个很复杂的canvas,那么得出的image,总是存在像素级别的误差。考虑到爬虫代码都是统一的,就算起selenium,也是ghost的,因此指纹一般都是一致的,因此绕过几率非常低。<br><br>但是!这个东西天生有两个缺陷。第一是,无法验证合法性。当然了,你可以用非对称加密来保证合法,但是这个并不靠谱。其次,canvas的冲突概率非常高,远远不是作者宣称的那样,冲突率极低。也许在国外冲突是比较低,因为国外的语言比较多。但是国内公司通常是IT统一装机,无论是软件还是硬件都惊人的一致。我们测试canvas指纹的时候,在携程内部随便找了20多台机器,得出的指纹都完全一样,一丁点差别都没有。因此,有些“高级技巧”其实一点都不实用。<br><br>浏览器指纹技术常用于客户端跟踪及反机器人的场景。核心思路是, 不同浏览器、操作系统、以及操作系统环境,会使得canvas的同一绘图操作流程产生不同的结果。如果是相同的运行环境,同一套Canvas操作流程会产生相同的结果。 浏览器指纹的优势是不需要浏览器保持本地状态,即可跟踪浏览器。 由于国内特色的Ghost系统安装,这种方式的误杀率并不低。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user