微信小程序安全通讯方案

文章介绍了在微信小程序中实现安全通讯的三种方法:1)使用微信登录code方案验证请求来源;2)利用微信加解密API进行加密通讯,防止数据泄露;3)采用微信云开发方案,利用其内置的加密通讯机制。作者倾向于第二种方案,因其服务维护成本较低。
摘要由CSDN通过智能技术生成

微信小程序并非原生应用,因此很多基于底层验证的方案都无法使用。因为小程序本质上是一个简化版的浏览器。虽然微信可以被视为小程序的底层,但是功能受限于当前微信提供的一些API。

小程序由于其编译产生的包可以被截获,并通过反编译等手段查看到逻辑实现,因此可以认为在小程序内部编写大量的加密逻辑意义不大。另外小程序的通讯开发方式一般来说是基于http协议的,其又能通过中间人攻击查看到,因此普通开发的情况下还是很难做到不被攻击的,或者说没有太大收益的情况下还没有被攻击。。。

结合当前微信提供的一些API及开发方案,按照自己的经验来看,有一下三个方式来确保微信小程序实现安全通讯,当然首先认为微信自身的通讯安全的。

微信登录code方案

微信登录文档地址, wx.login其能够获取到一个code,在登录文档中,描述到临时登录凭证 code 只能使用一次
首先这个code是通过微信API获取到的,并且需要在微信后台结合小程序的AppId及AppSecret解密的方式验证其有效性,这样的话我们就很难伪造这个东西了。这样的话我们就能够验证当前这次请求一定是通过微信小程序发送过来的了。

微信加解密方案

微信增加了一个加密的API,文档地址,通过这个API我们能够获取到一个加密的密钥,当小程序通过API获取这个密钥之后,服务端也能够通过微信后台获取到相同的密钥,文档地址, 密钥不通过小程序传输,并且密钥的有效期2小时,避免了密钥泄漏的问题。这样小程序通过一种加密算法加密之后传输给服务端就能完成加密通讯,并且服务端能够解密的情况又保证了请求是通过小程序发送的。基本上这个方案就能满足绝大部分的需求了。

微信云开发方案

微信小程序开发主推的云开发方案确实还是不错的,其通讯通过微信内部加密方式,从抓包情况来看应该是无法获取到的。尝试了云开发的云函数、云存储及云数据库三种方案,都是通讯安全的,外部基本上无法获取通讯内容,服务端通过微信服务提供的接口能够获取到存储信息及数据。
如果从0开发的话,这个方案还是不错的,集成到现有方案中其实也是可行的,就是每个月有固定的套餐费用消耗,并且小程序的云开发环境同腾讯云的开发账号的关联真的头大。

总体上来说对于开发者来说还是倾向于第二种方案,服务维护的成本比较小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xyccstudio

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

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

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

打赏作者

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

抵扣说明:

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

余额充值