京东电商数据批量采集h5st逆向实战
// 实战案例:京东电商数据逆向实战(h5st生成)
// 网址:https://www.jd.com/
概述
h5st是京东网页端重要的反爬虫参数,主要用于保护核心接口免受机器请求的干扰。该参数通过复杂的JavaScript代码生成,涉及加密、签名等多种前端安全技术。本笔记通过分析京东首页feed流接口的h5st参数生成过程,揭示其实现原理。
网页分析









技术要点
2.1 反调试技巧
- 代码混淆:变量名和函数名被替换为无意义的标识符
- 代码压缩:移除空格和换行,增加阅读难度
- 控制流平坦化:打乱代码执行顺序
2.2 加密特征
- 使用标准哈希算法(可能是SHA256)
- 包含时间戳防止重放攻击
- 可能使用AES或自定义加密算法
2.3 参数重要性
- appid: 应用标识
- body: 请求体哈希值
- functionId: 接口功能标识
- t: 时间戳,确保签名时效性
环境补全实现
3.1 基础环境配置
代理监控系统
4.1 代理实现函数
4.2 代理对象配置
代码分析
5.1 参数结构
5.2 核心调用代码
逆向思路
6.1 定位关键代码
- 全局搜索:在浏览器开发者工具中搜索h5st、h5st: 等关键词
- 调用栈分析:通过XHR断点追踪参数生成过程
- Hook技术:拦截相关函数调用获取加密逻辑
6.2 定位关键代码
从代码片段可以看出:
- 使用 window.ParamsSign 获取加密对象
- 调用 sign() 方法生成 h5st
完整代码
补环境的另一种实现思路
插件安装包(需要安装包的可私)


常见问题解决
7.1 环境补全不完整
现象:报错提示某些属性未定义
解决:
- 检查报错信息中缺失的对象/属性
- 在环境初始化部分添加对应的模拟代码
- 使用代理监控确认属性访问情况

