docs: 大前端数据安全方案价值思考

This commit is contained in:
LiuBinPeng
2021-09-18 01:14:35 +08:00
parent 55a89dc4a5
commit 91c79d8993
4 changed files with 40 additions and 7 deletions

View File

@@ -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)
![效果演示](https://raw.githubusercontent.com/FantasticLBP/Anti-WebSpider/master/Anti-WebSpider.gif)
@@ -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系统安装这种方式的误杀率并不低。

View File

@@ -239,3 +239,4 @@ class Welcome extends React.Component {
- Vue 设计思想How easy it can be。ReactHow corrct it can be 和 all in jscss写法也在用 js 控制,比如 styled-component
在 React、React Native、Vue、Weex、Flutter 等声明式开发思想的框架下UI = F(state)。一个状态唯一对应一个 UI但一个 UI 不一定对应一个 state关心 state 即可

View File

@@ -7,5 +7,17 @@
4. 基于微服务,肯定需要一个 BFF 层扮演业务编排、字段转换。比如订单域的模型有100个字段。但是订单的接口为客户端服务客户端通过接口找20182020年的、待付款的订单BFF 层就去扮演数据组装、字段筛选的作用。
## 聚焦核心域
Domain 按照业务能力划分,围绕着一个独立清晰的业务目标,有内聚的核心概念
1. 核心域:
- 决定产品和公司核心竞争力的子域
- 它是业务成功的主要因素和公司的黑心竞争力
- 需要投入优秀的资源和精力,建立好核心竞争力
2. 支撑域:不包含决定产品和公司核心竞争力的功能,需要定制开发,帮助核心域达成目标
3. 通用域:通常市场上已有成熟的解决方案,通用子域的解决方案可以来购买现成的,也可以采用外包的方式。
- https://tech.meituan.com/2017/12/22/ddd-in-practice.html
- https://juejin.cn/post/6997250621627858957#heading-3

View File

@@ -8,8 +8,11 @@
2. 消炎
调节消化系统三天没有大的作用可以考虑为猫咪消除肠道炎症。
这里有一个消炎药选择的问题在肠道感染中99%都是由杆菌引起的,对付杆菌最好的选择是硫磺庆大霉素、卡那霉素等药。其中由于庆大霉素的分子量比较大,口服不会被内脏吸收,是猫咪处理肠道炎症的首选药物。  
这里有一个消炎药选择的问题在肠道感染中99e%都是由杆菌引起的,对付杆菌最好的选择是硫磺庆大霉素、卡那霉素等药。其中由于庆大霉素的分子量比较大,口服不会被内脏吸收,是猫咪处理肠道炎症的首选药物。  
需要注意的是,在服用消炎类药物半个小时后,需要给猫咪喂些活菌类的助消化药,如乳酶生、妈咪爱等,帮助猫咪恢复消化能力。
3. 饮食
肠炎严重的话建议每日以吃流食为主少食多餐如果拉稀呕吐比较频繁尤其是拉肠粘膜时应禁食禁水12个小时左右。
肠炎严重的话建议每日以吃流食为主少食多餐如果拉稀呕吐比较频繁尤其是拉肠粘膜时应禁食禁水12个小时左右。
4. 猫藓
小奶猫20天左右可以打大宠爱在猫咪的耳朵边上。1g左右