专栏名称: 架构师
架构师云集,三高架构(高可用、高性能、高稳定)、大数据、机器学习、Java架构、系统架构、大规模分布式架构、人工智能等的架构讨论交流,以及结合互联网技术的架构调整,大规模架构实战分享。欢迎有想法、乐于分享的架构师交流学习。
目录
相关文章推荐
携程技术  ·  AI专栏 | ... ·  2 天前  
今天看啥  ›  专栏  ›  架构师

SpringBoot接口设计防篡改和防重放攻击

架构师  · 公众号  · 架构  · 2024-10-02 22:28
    

主要观点总结

本文主要介绍了API接口防篡改、防重放攻击的常见方案,包括参数加密、请求时间限制等,并详细描述了实现方法。

关键观点总结

关键观点1: API接口暴露问题

API接口提供给第三方服务调用,接口上提供了具体的请求地址和请求参数,接口可能被人抓包拦截并对请求参数进行修改后再次发起请求,可能导致信息被盗取或服务器受到攻击。

关键观点2: 防止接口参数篡改

前端使用约定好的秘钥对传输参数进行加密,得到签名值sign1,并将签名值存入headers后发送请求给服务端。服务端接收客户端的请求后,在过滤器中使用约定好的秘钥对请求的参数再次进行签名,得到签名值sign2,对比两者的值来判定是否为合法请求。

关键观点3: 防止接口重投放

基于timestamp对参数进行签名,每次http请求都加上timestamp时间戳和请求的参数一起进行数字签名。服务器收到请求后判断时间戳参数与当前时间是否超过设定时间(如60s),如果超过则提示签名过期,如果修改timestamp参数则sign参数对应的数字签名会失效。

关键观点4: 代码设计思路

主要是通过创建过滤器,对参数进行签名验证。过滤器代码包括初始化、doFilter(过滤)、响应错误信息等部分,并在yml配置文件中进行配置重放超时时间和不过滤的URI地址。


免责声明

免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址:访问原文地址
总结与预览地址:访问总结与预览
推荐产品:   推荐产品
文章地址: 访问文章快照