聊聊开放平台建设

开放平台老吕也做过,简单说下建设步骤吧

1、appkey,appsecret  生成与分配(分测试环境与生产环境)

发展初期,可以人工生成、分配;

后期做个平台,用户注册、购买、自动获取接入密钥信息,还可以自己更新密钥信息。

2、api调用步骤

1)下载官网的SDK也可以使用公布的原始的http协议接口自己造SDK

2)获取accessToken

3)调用接口

3、http协议下要解决的问题

1)获取accessToken过程中 密钥的泄漏

其实无法防御,简单防御下就是 做个md5后再传输

2)传输过程中业务数据被拦截篡改

数据签名(参数排序+时间戳+密钥 ,再MD5获取一个签名值)

3)重放攻击

数据签名过程中加入一个当前时间戳参数,约定好签名信息的有效期,服务端根据时间戳判断签名是否过期

4)业务数据的明文问题

不好解决,除非你和客户端约定好另一套对称加密算法,在签名之前将业务数据先进行加密

4、由于http协议下众多安全问题,所以使用https协议很有必要

由于https使用了全程加密技术(非对称加密,数字证书,临时密钥,防重),所以无需担心数据篡改问题,也无需担心accessToken泄漏问题,更无需担心明文问题(包括url 参数和header和body全是加密的)。也就是说使用了https的情况下客户端只需要先用分配的key和secret获取到accessToken,然后就可以放心的调接口传输任何数据了,没有任何安全问题,我们服务端只要做好accessToken的验证就可以了。

5、api以及调用次数授权问题

不同客户可访问的API根据购买情况授权,包括能访问哪些api以及每个api的限速。

限速、限次 、熔断 可以有效解决平台稳定安全问题

6、黑名单制度

主要用来防止恶意调用,可以是IP、手机号、账号、appkey、accessToken,必要时一封了之。

7、accessToken实时失效问题

accessToken具有一定的有效期,假如在有效期内此accessToken被泄漏或者恶意访问,如何紧急处理让它失效呢?

一种办法是服务端缓存 accessToken,假如accessToken泄漏后,从服务端缓存中移除,相当于失效了,这种方法不好的地方就是 服务端需要维护accessToken,在分布式系统情况下这是需要很大的验证开销,并且可能导致服务端带状态。

另一种办法是accessToken黑名单制度,因为accessToken到了服务端是要被解析的,验证真伪以及有效期,配合步骤6中的各种黑名单机制来限制访问,以达到屏蔽accessToken的目的。

今天就到这里,感谢关注老吕架构!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕哥架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值