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

Spring框架下跨接口响应与请求关联校验实现方案咨询

跨接口字符串一致性校验实现方案

以下方案完全符合「不使用数据库存储、前端无需同时回传新旧字符串」的约束要求。

场景1:允许使用Cookie的实现方案

  • 后端响应GET /initialise-string请求时,首先生成随机原始字符串S
  • 用仅服务端持有的密钥对S计算HMAC哈希值,得到不可伪造的签名sign
  • 后端将sign存入带HttpOnly、Secure、SameSite属性的Cookie中返回给前端,同时将明文S返回给前端做业务处理

    HttpOnly属性禁止前端JS读写该Cookie,从根源避免前端篡改签名

  • 前端提交POST /check-if-same-string请求时仅需传入修改后的字符串S',Cookie会自动随请求携带到后端
  • 后端取出Cookie中的sign,用相同密钥对S'重新计算HMAC哈希,与原sign比对:匹配则S'与原始字符串一致,不匹配则被篡改。

场景2:不允许使用Cookie的实现方案

  • 后端响应GET /initialise-string请求时,生成随机原始字符串S
  • 用仅服务端持有的密钥对S计算HMAC哈希得到sign,将明文S和sign两个字段同时返回给前端,也可直接拼接为S:sign的格式整体返回
  • 前端仅需截取明文S做业务修改,提交POST /check-if-same-string时,仅需要传入「修改后的字符串S' + 之前拿到的sign」即可,无需回传原始S
  • 后端收到请求后拆分出S'和sign,用相同密钥对S'重新计算HMAC哈希,与传入的sign比对:匹配则S'与原始字符串一致,不匹配则被篡改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:06:03