APP调用微信接口针对AppID、AppSecret泄露的安全方案设计

举报
架构师聊技术 发表于 2022/12/16 15:03:28 2022/12/16
【摘要】 针对AppID、AppSecret账号信息泄露的情况,设计的安全方案。其实前后端交互都可以做参考,尤其是有App客户端的情况下,如果是直接把重要的账号信息直接放到使用者设备上,是非常危险的。

针对AppID、AppSecret账号信息泄露的情况,设计的安全方案。其实前后端交互都可以做参考,尤其是有App客户端的情况下,如果是直接把重要的账号信息直接放到使用者设备上,是非常危险的。

一、安全隐患起因

  • AppID、AppSecret是什么
  • AppID:开发者ID是公众号开发识别码,配合开发者密码可调用公众号的接口能力。
  • AppSecret:开发者密码是校验公众号开发者身份的密码,具有极高的安全性。
  • AppSecret就像门的一把钥匙,如果钥匙丢失或者让其他人获取到,哪是极度不安全的,所以AppSecret的安全性在微信对接的过程中非常重要,避免直接在客户端存储及显示。

主要分享低代码、微服务、容器化、SAAS‬、系统架构方面的的‬内容‬‬,希望‬大家‬点赞‬,评论,关注‬。

二、安全方案设计

  • 客户端跟后端交互流程


  • 流程描述
  1. App客户端是安装在使用者设备上,所以Android、iPhone安装包中不能包含敏感信息,比如AppID、AppSecret账号信息,安全性需要提高,主要是设计思路是敏感信息保存到服务端,并且存储的时候采用加密后存储,这样即使数据库泄露,敏感信息还是安全的,同时在Java后端服务中处理加密解密过程
  2. 具体业务使用流程,App客户端需要用到AppID、AppSecret跟微信交互的时候,通过Api跟Java后端服务交互,获取AppID、AppSecret信息,Java后端服务收到App客户端的请求后,从数据库获取加密后的AppID、AppSecret等敏感信息,同时进行解密过程,最后把解密后的敏感信息返回给App客户端,App客户端收到AppID、AppSecret后再结合其它业务数据,形成跟微信交互的数据包,然后通过API跟微信开放服务平台交互,进行业务处理。
  3. App客户端跟Java后端服务API对接建议采用HTTPS协议
  • 主要节点说明
  1. Android客户端、iPhone客户端:是安装到使用者终端的程序包,只需要实现业务功能就好,不要存放敏感信息
  2. 是否需要AppID、AppSecret:客户端在进行业务处理时,是否需要AppID、AppSecret等敏感信息,如果需要则需要通过API与Java后端服务对接,如果不需要则自己处理即可
  3. Java后端服务:负责处理客户端的请求,及从数据库中获取信息,其中涉及到敏感信息时,需要进行对称加密,存储时进行加密处理,返回时进行解密处理
  4. 后端加密存储:主要是数据库存储系统数据,但敏感信息需要存储加密后的数据
  • 其它
  1. 终端程序跟Java后端服务建议采用HTTPS协议
  2. 修改或者关闭服务器端所在的服务器常用开放端口
  3. 数据库修改默认端口号
  4. 如果有中间件,则修改默认端口及增加认证机制

主要分享低代码、微服务、容器化、SAAS‬、系统架构方面的的‬内容‬‬,希望‬大家‬点赞‬,评论,关注‬。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。