You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防护JSON数据免遭Selenium拦截器窃取并保障前端密钥安全?

可行,这里提供几种可落地的实现方案

1. 会话级动态对称密钥协商

不用在前端硬编码任何密钥,流程如下:

  • 用户完成身份验证(比如登录)后,后端生成一个一次性会话对称密钥(推荐AES-256-GCM算法,自带完整性校验),通过HTTPS返回给前端。
  • 前端后续所有JSON请求,先把JSON序列化为字符串,用该密钥通过浏览器原生Web Crypto API加密,再把加密后的密文作为请求体发送。
  • 后端收到密文后解密处理,响应数据也用同一密钥加密后返回,前端解密后再解析为JSON。
    这种方案下,密钥仅在当前会话有效,就算前端源码被逆向,也无法获取到能复用的有效密钥。

2. RSA公钥加密+随机对称密钥交换

利用非对称加密的特性,避免直接传输对称密钥:

  • 前端内置后端的RSA公钥(可做简单混淆,比如拆分存储为多个字符串、运行时再拼接,增加逆向成本)。
  • 前端首次发起数据交互前,随机生成一个临时对称密钥,用RSA公钥加密后发送给后端。
  • 后端用私钥解密得到临时对称密钥,之后双方就用这个密钥加密所有JSON数据。
    这里公钥本身不需要保密,核心是临时对称密钥的随机性和一次性,就算公钥被提取,也无法解密实际的业务数据。

3. 源码混淆+动态密钥注入

通过代码混淆和动态注入提高密钥提取难度:

  • 用专业工具(比如Terser、JavaScript Obfuscator)对前端JS代码做深度混淆,包括变量名混淆、代码扁平化、字符串加密等。
  • 密钥不直接写在源码里,而是由后端在页面加载时,动态注入到DOM的隐藏属性中(比如<meta name="secret-key" content="xxx" hidden>),前端运行时再从DOM中读取并使用。
    这种方式能大幅增加黑客从源码中定位、提取密钥的难度。

关键注意事项

  • 优先使用浏览器原生的Web Crypto API,相比第三方加密库,它更难被恶意脚本hook或篡改。
  • 加密/解密操作必须在前端完成,确保请求发送前、响应接收后的数据都是加密状态。
  • 要实现密钥过期自动协商逻辑,比如会话超时、密钥使用次数达到阈值时,自动触发新的密钥交换流程。

内容的提问来源于stack exchange,提问作者AJJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:40:21