摘要:在开放给第三方使用的中,如果让第三方携带明文的请求服务,极有可能泄漏。由于第三方身份验证服务器是依赖于的,这样会造成不良的后果。
在开放给第三方使用的API中,如果让第三方携带明文的token请求服务,极有可能泄漏token。由于第三方身份验证服务器是依赖于token的,这样会造成不良的后果。为了提高通信的安全性,我们需要加密token,就是URL签名了。实现URL的签名过程
生成URL签名的signature,假设第三方获取到token后,token=“aff9u87kkk444hjg”,openId=8996,将要调用的API路径是zithan.test/user/show,那么URL签名如下:
signature=md5("zithan.test/user/show?openId=8996&token=aff9u87kkk444hjg")
组合API的路径
zithan.test/user/show?openId=8996&signature=1aba61306711521e8b52ac2f46bb3ebf
但是现在还有一个问题,就是重放攻击,没有过期时间,假设非法者截获了这个API路径,就能反复调用这个路径。 改进方法是增加时间戳,增加API路径的时效性。
signature=md5("zithan.test/user/show?openId=8996&token=aff9u87kkk444hjg×tamp=1550732083")
zithan.test/user/show?openId=8996×tamp=1550732083&signature=cba2aa328577e6aab3e811517e1aa752注意事项
md5可以换成其他非对称加密的方法
在获取token那一个步骤也有可能泄露token,那么严谨就需要采取对称加密,进行数据加密。
因为增加了时间戳,那么就有可能导致第三方和服务器的差异性,那么就需要计算第三方的时间差,在验证签名或者生成签名的时候考虑进去。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/30124.html
摘要:签名用的必须是调用接口页面的完整。出于安全考虑,开发者必须在服务器端实现签名的逻辑。以上为服务器的步骤,根据以上内容实现了一个简单的中间件,详见客户端使用接口注入权限验证配置待续 关键名词解释 安全域名: 用于JSSDK,开发者即可在该域名(包括二级域名)下调用微信开放的JS接口 access_token: · 普通access_token:JSSDK和微信公众号后台...
摘要:开发流程准备完成后我们来看一下支付的大体流程商户应用与微信支付主要的交互说明用户在商户应用移动端中选择商品提交订单,支付方式选择微信支付。商户应用后台收到用户支付订单,调用微信支付中的统一下单接口。 引言 秋高气爽,天气转凉,正是学习工作做的好时候。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是个phper最近在写微信支付(APP支付),微信给的官方文档并不是很详细也没有dome之类的代码啥的(...
摘要:开发流程准备完成后我们来看一下支付的大体流程商户应用与微信支付主要的交互说明用户在商户应用移动端中选择商品提交订单,支付方式选择微信支付。商户应用后台收到用户支付订单,调用微信支付中的统一下单接口。 引言 秋高气爽,天气转凉,正是学习工作做的好时候。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是个phper最近在写微信支付(APP支付),微信给的官方文档并不是很详细也没有dome之类的代码啥的(...
阅读 1088·2021-11-24 10:21
阅读 2544·2021-11-19 11:35
阅读 1638·2019-08-30 15:55
阅读 1274·2019-08-30 15:54
阅读 1179·2019-08-30 15:53
阅读 3473·2019-08-29 17:21
阅读 3272·2019-08-29 16:12
阅读 3390·2019-08-29 15:23