# boton **Repository Path**: xphape/boton ## Basic Information - **Project Name**: boton - **Description**: 反抓取防火墙,基于我之前做抓取遇到的一些发抓策略,和自己关于抓取反抓取的一些想法。似自身左右互博,故命名伯通 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-23 - **Last Updated**: 2021-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # boton #### 项目介绍 反抓取防火墙,基于我之前做抓取遇到的一些发抓策略,和自己关于抓取反抓取的一些想法。似自身左右互博,故命名伯通 #### 一些想法 1. 时间戳,后端下发时间戳。前端请求数据的时候带上时间戳。一般我们看见时间戳的时候,就会自己创建一个。由于不是服务器返回的,很容易攻击者找不到这个 2. 硬件声音,在设备端,打开麦克风和听筒(如果有权限)。通过声波进行一段编码传输。此时破解着很难确认某些校验参数如何产生的 3. 相关性计分,基于ip&device&uid之间的关联关系,如果他们发生了快速跃变,那么证明是爬虫 4. 控制流平坦化混淆,这个在c语言层面比较完善。但是js中,目前还没有出现在开源的世界中(我还没有发现) 5. 路径检测,分析用户操作行为 6. ip端检测,ip如果来自阿里云、腾讯云等云代理商。那么爬虫可能性大。 7. ip 对应c网聚合,如果某个c网网段的ip非常集中,但是单个ip没有那么集中。那么证明在切换ip。爬虫可能性高 8. ip端口探测,如果走高匿代理过来,确实无法通过http头部发现,但是抓取放需要对代理服务器进行控制的化,证明代理服务器是一个服务器。可以探测这个ip是不是一个服务器,如对某个代理ip进行端口扫描。进行常见服务协议探测,如果协议表明启用了一些服务器常见的服务。那么肯定不是一个正常用户。 9. tcp握手探测,同一个session下面,正常开启了tcp链接复用。所以在同一个请求中,大量的请求应该都在同一个tcp通道。如果tcp通道建立过于频繁,那么肯定是攻击者简单的使用http lib库请求数据 10 session绑定,多个请求,如果是相近业务,那么应该是存在一个session进行关联。如果在seesion内,发生了ip&device&uid等相关性元素跃变,那么请求不正常。 11. 统计存储器,考虑实现一个转为相关性数据存储的数据库,满足全量的ip&全量设备等相关性数据存储。至少支持在15天内的全量数据存储和快速查询(摒弃redis或者mysql等常见数据库) 12. https证书检查&代理行为定制,正常情况下网络库有两个容易被分析。a默认读取系统代理配置,配置了系统代理变可以抓包。b默认信任系统根证书。 13. java&js上层虚拟机,在语言上面再构建一层虚拟机,对特殊代码进行虚拟机保护。 14. userAgent检查,1.网络库有不正常的ua。2.代码可能硬编码UA。3.部分爬虫通过算法产生UA,但是算法不符合规范 15. 设备环境检查。是否root,是否有常见hook框架。是否有微信支付宝,是否是国内品牌手机,是否有联系人,电量是否一直100%。开机时间到目前是否太短或者太长。