博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给第三方使用接口的 URL 签名实现
阅读量:5825 次
发布时间:2019-06-18

本文共 803 字,大约阅读时间需要 2 分钟。

在开放给第三方使用的API中,如果让第三方携带明文的token请求服务,极有可能泄漏token。由于第三方身份验证服务器是依赖于token的,这样会造成不良的后果。为了提高通信的安全性,我们需要加密token,就是URL签名了。

实现URL的签名过程

  1. 生成URL签名的signature,假设第三方获取到token后,token=“aff9u87kkk444hjg”,openId=8996,将要调用的API路径是zithan.test/user/show,那么URL签名如下:
signature=md5('zithan.test/user/show?openId=8996&token=aff9u87kkk444hjg')
  1. 组合API的路径
zithan.test/user/show?openId=8996&signature=1aba61306711521e8b52ac2f46bb3ebf
  1. 但是现在还有一个问题,就是重放攻击,没有过期时间,假设非法者截获了这个API路径,就能反复调用这个路径。 改进方法是增加时间戳,增加API路径的时效性。
signature=md5('zithan.test/user/show?openId=8996&token=aff9u87kkk444hjg&timestamp=1550732083')
zithan.test/user/show?openId=8996&timestamp=1550732083&signature=cba2aa328577e6aab3e811517e1aa752

注意事项

  1. md5可以换成其他非对称加密的方法
  2. 在获取token那一个步骤也有可能泄露token,那么严谨就需要采取对称加密,进行数据加密。
  3. 因为增加了时间戳,那么就有可能导致第三方和服务器的差异性,那么就需要计算第三方的时间差,在验证签名或者生成签名的时候考虑进去。

转载地址:http://vxsdx.baihongyu.com/

你可能感兴趣的文章
SpringBoot-Shiro使用
查看>>
分布式理论:CAP是三选二吗?
查看>>
iOS 9.0之后NSString encode方法替换
查看>>
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
gitlab 账号注册及修改资料
查看>>
CRM Transaction处理中的权限控制
查看>>
在PL/SQL中获取操作系统环境变量
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>
统计文件里面某个字符串出现次数
查看>>
文件权限
查看>>
云从科技发布3D结构光人脸识别技术
查看>>
busybox里的僵尸进程为何那么多
查看>>
python debug
查看>>
java 连接数据库之一个完整的函数
查看>>
centos5.6下virtualbox安装手记
查看>>
mysql脚本
查看>>
OllyDBG 入门系列教学--让你瞬间成为破解高手
查看>>
Dubbo点滴(2)之集群容错
查看>>