zoukankan      html  css  js  c++  java
  • 云调用:防薅防泄漏,安全安心用

    对于很多开发者而言,调用微信开放服务接口已经是常规操作了。

    例如,开发一个小程序,你可以通过调用微信封装好的各类开放组件和 API 接口,接入订阅消息、OCR、直播等服务。

    而优雅的调用往往只需要最简单的操作方式,尽量简洁的调用路径可以提升开发效率。

    以前,微信开放服务接口的正常调用,需要开发者使用密钥信息获取access_token,并自己维护token的有效期和安全。而获取access_token,涉及到密钥交互请求,对于安全性意识一般或研发条件有限的企业和开发者,容易暴露密钥导致被盗用

    那么,是否有一种更高效,又更安全的调用方式,能让微信生态内的小程序、公众号网页等多端应用,调用得又快又好,让业务敏捷躲开调用Bug?

    「云调用」由此诞生,它天然具有「免鉴权调用微信开放服务接口」特性,通过云调用,开发者无需再维护 access_token 等鉴权信息,写少量代码即可轻松调用微信开放服务接口,十分便捷;同时,对于接口请求合法性的判定,云调用全程经由微信私有链路实现,可以有效规避公网访问可能带来的安全风险,性能开销也更小。

    图片

    以微信支付接口为例,使用云调用,开发者无需关心证书、鉴权、微信支付服务端文档等,一行代码即可调用相应接口。

    如何使用云调用?

    微信云开发和微信云托管中都支持使用云调用,两者的具体实现形式有所不同:

    图片

    微信云开发中的云调用,主要通过云函数调用 wx-server-sdk 访问开放服务接口,需要具备 Node.js 等相关知识,因此适合偏前端与全栈开发团队使用。

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html

    示例代码如下:

    const cloud = require('wx-server-sdk')
    cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
    exports.main = async (event, context) => {
      return await cloud.openapi.security.msgSecCheck-v1({ content:"安全检查测试文本" })
    }
    

    微信云托管中的云调用,不限制开发语言和框架,云托管后台会周期性地将调用开放接口所需的 access_token 令牌(类似于“验证码”),推送到服务的容器实例中,此时只需从容器本地读取“验证码”,再包装请求后就可以调用了,整体上更适合后端和全栈开发团队。

    https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html

    示例代码如下:

    const fs = require('fs')
    const request = require('request')
    const token = fs.readFileSync('/.tencentcloudbase/wx/cloudbase_access_token', 'utf-8')
    return new Promise((resolve, reject) => {
      request({
        url: `https://api.weixin.qq.com/wxa/msg_sec_check?cloudbase_access_token=${token}`,
        body: JSON.stringify({ content:"安全检查测试文本" }),
      },async function (error, response) {
        resolve(JSON.parse(response.body))
      })
    })
    

    无论选择哪种开发模式,使用云调用后,访问都会在微信私有链路中完成,能够保障业务安全性。对于前后端分离架构的业务,更推荐使用微信云托管作为后端服务。

    图片

    目前,已有大量不同规模的业务,通过微信云托管获得了更快的和更好的安全保障,达到防“薅羊毛”、防DDoS攻击、优化网络延迟等目标。

    此外,微信云托管还上线了「无门槛部署」功能,支持通过预设的开源框架快速创建一个微信云托管服务,并通过各种调用方式发起对服务的请求,大幅降低了使用门槛,欢迎体验。

    https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/quickstart/template/

    图片

    登录方式上,微信云托管新增支持了公众号登录。免写 Dockerfile 一键迁移、静态资源存储、WebSocket等新功能也即将上线,敬请期待。

    更多资料

    微信云托管官网(请在PC端访问以下地址)

    https://cloud.weixin.qq.com/

    微信云托管官方文档

    https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/basic/intro.html

    微信云托管系列教程

    https://developers.weixin.qq.com/community/business/course/00068c2c0106c0667f5b01d015b80d

    微信云托管专家1V1服务

    https://cloud.tencent.com/act/pro/cloudrun

    微信云开发/云托管激励计划

    https://cloud.tencent.com/act/pro/wxcloudrun

  • 相关阅读:
    php如何导出csv文件(代码示例)
    【转】Linux 进程终止后自动重启
    【转】小程序web-view覆盖原生组件
    搭建 LNMP 环境
    数据库索引的底层原理
    NoSQL 介绍
    MySQL Explain详解
    centos搭建 SVN 服务器
    【转】提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
    优化mysql slave的同步速度
  • 原文地址:https://www.cnblogs.com/CloudBase/p/15629349.html
Copyright © 2011-2022 走看看