前端向后端提交密码等敏感信息时先做编码再提交


后端有处理密码的加密算法,仅仅在前端处理和后端filter层处理,不改变原有的加密的逻辑(场景比较特殊)

解决方案

  • 在配置文件配置需要加密解密的url和parameter
  • 自定义filter,拦截到需要解密的url,dofilter
  • 定义HttpRequestWrapper,处理解密
  • filterChain(HttpRequestWrapper, response);

参考文档

https://stackoverflow.com/questions/681263/modify-httpservletrequest-body

https://stackoverflow.com/questions/50932518/how-to-modify-request-body-before-reaching-controller-in-spring-boot

踩的坑

  • @RequestParam 和 @RequestBody 区别,以及HttpRequestWrapper分别需要@Override的方法
    • @RequestParam :@getParameter @getParameterValues @getParameterMap
    • @RequestBody : @getReader @getInputStream
  • spring security自定义filter重复执行问题

https://segmentfault.com/a/1190000012173419

  • ServletRequest中getReader()和getInputStream()只能调用一次

https://www.cnblogs.com/zj0208/p/6214576.html

需要修改的点

  • 配置文件配置属性的分隔符 (url 之间用分号间隔,param之间用逗号间隔)
  • url 和 url/ 的匹配 (检测最后为/,直接删除)
  • ……

延伸和适配性

  • 加密和机密算法的可配置

代码暂时没有,我把相关的代码提取出来会放到这里

https://github.com/yemaozi5518/SpringBootEncryption/blob/master/README.md

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值