数据安全(反爬虫)之「防重放」策略
在大前端时代的安全性一文中讲了 Web 前端和 Native 客户端如何从数据安全层面做反爬虫策略,本文接着之前的背景,将从 API 数据接口的层面讲一种技术方案,实现数据安全。
一、 API 接口请求安全性问题
API 接口存在很多常见的安全性问题,常见的有下面几种情况
1.即使采用 HTTPS,诸如 Charles、Wireshark 之类的专业抓包工具可以扮演证书颁发、校验的角色,因此可以查看到数据
2.拿到请求信息后原封不动的发起第二个请求,在服务器上生产了部分脏数据(接口是背后的逻辑是对 DB 的数据插入、删除等)
所以针对上述的问题也有一些解决方案:
1.HTTPS 证书的双向认证解决抓包工具问题
2.假如通过网络层高手截获了 HTTPS 加证书认证后的数据,所以需要对请求参数做签名
3.「防重放策略」解决请求的多次发起问题
4.请求参数和返回内容做额外 RSA 加密处理,即使截获,也无法查看到明文。
关于 HTTPS 证书双向认证和 Web 端反爬虫技术方案均在大前端时代的安全性一文中有具体讲解。接下来引出本文主角:防重放
二、 请求参数防篡改
在之前的文章也讲过,HTTPS 依旧可以被抓包,造成安全问题。抓包工具下数据依旧是裸奔的,可以查看Charles 从入门到精通文中讲的如何获取 HTTPS 数据。
假如通过网络层高手截获了 HTTPS 加证书认证后的数据