springboot 数据防篡改

假设用户下订单,第三方拦截请求,把订单中商品id做了修改(保证最终价格不变),然后用户核算订单时,第三方也做请求拦截,让用户看到的是符合预期的详情,这样用户下单交钱后,等到收货时发现不是自己买的东西。

就这种数据的篡改,应该如何应对?
比如一些无关紧要的数据,是否可以不去管,只对一些和钱有关的做严格验证?

然后怎么去验证?把请求的url和参数列表做签名,后端验证?
做签名的话一般需要密钥,如果是web端或app端,密钥如何下发?写死到应用里吗?

有没有啥好的方案或做法?

阅读 2.9k
3 个回答

比较简单的办法是增加mac(message authtication code),和数据一起传递。数据到达后以同样的方式处理一下,如果和mac 一样,说明未被修改。当然ssl 协议也可以,这种数字签名的方式还能防止抵赖,mac 属于一种简单方便的防篡改的方式。

签名的话,不一定需要你使用秘钥,请求方和接口使用同一种签名算法,直接比较签名值就行了!遇到好多那种直接明文拼接然后取md5值的,难道你还想它还原嘛😂

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏