当前位置: 首页 > article >正文

为什么HTTP请求后面有时带一个sign参数(HTTP请求签名校验)

前言

最近在开发过程中,发现前端有很多的接口发送请求时都会携带sign=xxxx参数,但是后端明明没有写,也不需要这个参数,后面才知道,这个前面是为了给http请求签名,主要是为了防止请求体和请求参数被拦截篡改,后端不需要处理该参数,该参数是给网关来进行处理和校验的。

为什么要请求签名

通常我们后端接口暴露给前端使用,但是浏览器f12或者抓包工具可以轻松的获得我们后端接口的请求地址,为了限制只有指定客户端、前端或其他指定第三方服务可以调用我们的接口。

对接口使用前面算法前面后,可以保证,

  • 后端接受到的请求,一定是有权限的客户端发出的请求
  • 请求参数在整个网络传输过程中没有被篡改
  • 加入时间戳的话,可以保证这个请求在一段时间内生效,防止了重放攻击

使用场景

  • 需要对接口访问进行权限限制
  • 对接口的安全性有一定要求

如何使用

只要能发出http请求就都可以对http请求体前面
例如前端在发送请求前,根据约定好的签名算法,把sign给生成拼接在url后面
后端同样可以对请求前面,只要实现了相应的签名算法即可

后端通常不要对签名参数进行处理,这是网关所负责的,签名不合格的非法请求直接就会被网关拦截

注意:

签名机制仅能确保请求中的参数不被篡改,并不能保证传输中敏感数据的安全性。

参考:

  • 这个讲的很详细: https://blog.csdn.net/ruangongtaotao/article/details/131634900

  • 这是阿里云的真实案例,需要调用阿里云的接口,则必须根据他的官方文档构造签名函数,这样发送的请求才有效 https://help.aliyun.com/zh/sls/developer-reference/request-signatures
    https://help.aliyun.com/zh/api-gateway/traditional-api-gateway/user-guide/use-digest-authentication-to-call-an-api

  • 具体代码实现:https://blog.csdn.net/Monten_Cristo/article/details/117999827

  • 这个讲的很详细:https://www.cnblogs.com/Sinte-Beuve/p/12093307.html

  • 其他网站的api文档 https://open.esign.cn/doc/opendoc/dev-guide3/tggw2e


http://www.kler.cn/a/469630.html

相关文章:

  • 9. C 语言 循环控制结构详解
  • PyTorch 自动混合精度AMP Grad Scaler 源码解析:_unscale_grads_ 与 unscale_ 函数
  • 使用WebSocket 获取实时数据
  • 我的nvim的init.lua配置
  • 【HarmonyOS】鸿蒙应用如何进行页面横竖屏切换以及注意事项,自动切换横竖屏,监听横竖屏
  • CODESYS MODBUS TCP通信(AM400PLC作为主站通信)
  • SAP SD学习笔记26 - 贩卖契约(框架协议)的概要,基本契约 - 数量契约
  • Ubuntu创建python虚拟环境
  • 太速科技-747-4通道 500Msps 12bit 直流耦合 PCIe采集卡
  • 您有一份 Apache Flink 社区年度报告请查收~
  • Node.js 模块系统
  • Linux-----进程处理(execve执行可执行文件)
  • 青少年编程与数学 02-006 前端开发框架VUE 05课题、使用模板
  • 结合 nc 工具利用笑脸漏洞(Smile Bug)攻击 Metasploitable2 Linux
  • javadoc命令的简单使用
  • RabbitMQ通过代码创建交换机和队列
  • 分布式任务调度xxl-job入门案例
  • Chapter 1 Understanding Large Language Models
  • BUG解决:postman可以请求成功,但Python requests请求报403
  • kafka Broker专题
  • pytdx,取市场股票列表,get_security_list,start参数为8000时,数据获取失败,导致无法获取全量数据的BUG修正
  • vue3-diff算法-最长递增子序列
  • 数据结构C语言描述8(图文结合)--哈希、哈希冲突、开放地址法、链地址法等实现
  • AndroidStudio环境版本管理
  • XIAO Esp32 S3 网络摄像头——3音视频监控
  • 2.1.7-1 io_uring的使用