功能简介
Web 应用防火墙推出小程序安全加速解决方案,提供包括小程序加速、数据私有协议加密、DNS 防劫持、分布式就近防护、网络应用防护等多种能力,帮助用户提高业务数据及接口安全、抵御外部恶意流量以及提升业务访问质量。
说明:
1. 产品试用说明:未试用过小程序安全加速功能的用户,支持免费领取7-15天体验权益。
2. 接入说明:自动接入仅支持有体验版的标准小程序,无体验版小程序、H5小程序需采用手动接入。
1. 登录 Web 应用防火墙控制台,在左侧导航栏中,选择资产中心 > 小程序安全加速。
2. 在小程序接入管理页面,进行小程序接入或者升级购买。
若当前 WAF 实例尚未保有小程序安全加速增值能力,可以申请单击新购小程序安全加速增值能力,跳转至购买按需购买。
若当前 WAF 实例已保有小程序安全加速增值能力,本页面支持小程序接入以及接入列表管理。
3. 小程序接入支持自动接入和手工接入两种不同的接入方式。

4.小程序接入列表管理。
接入完成后,可以查看小程序卡片在接入防护后的请求次数,以及防护拦截的请求数,了解访问趋势及威胁防护趋势。

自动接入
适合于有体验版的标准小程序接入,只需授权小程序接入管理能力,无需修改代码、无需重新发版,即可发布至体验版,验证完成后,支持一键发布至线上版本。
步骤1:授权接入,选择相应的小程序以完成授权
1. 在 小程序安全加速页面,选择自动接入,单击开始接入。
2. 在一键授权页面,选择需接入防护的小程序 ID。在新打开的公众号授权平台页面,使用管理员微信扫码授权 WAF 自动完成小程序接入,完成授权。本次授权仅包含开通小程序安全加速能力,不涉及其他权限。
3. 授权完成后,将自动刷新至 Web 应用防火墙控制台并唤起接入侧边栏。
4. 在授权接入页面,选择当前需要接入的小程序,单击确认接入,进入下一步,进入体验测试。

步骤2:完善小程序源站接入 WAF 后,扫码测试验证
在体验测试页面,管理小程序源站域名和端口,将全部接入 WAF 后,展示小程序体验二维码,支持用户扫描验证。
若域名未全部接入 WAF,提供接入状态提示,均完成接入后才会展示体验码。
若域名均完成接入 WAF,自动展示体验版二维码。客户扫码进行小程序体验测试,且检验接入后业务无异常后,单击下一步进行发布环节。 默认将小程序体验版请求接入微信私有链路,完全不影响线上业务流量。

步骤3:确认发布,开启安全加速防护
1. 在发布管理页面,确认内容无误后,单击确定发布,将小程序防护能力应用到线上发布版本。

2. 发布后,默认将小程序线上请求接入微信私有链路,受小程序安全加速能力保护。
发布管理
发布回滚:完成发布后,支持单击小程序卡片中的取消发布进入发布管理页面,单击取消发布,经过二次确认后,自动将线上版小程序请求切换至原业务公网链路,不经过小程序安全加速功能防护。

重新发布:取消发布后,单击小程序卡片中的编辑或继续完成小程序接入,即可唤起发布管理页面,重新发布后,将线上版小程序请求重新接入小程序安全加速功能防护。

手动接入
适用于各种小程序接入,只需简单修改代码、测试并验证发布即可开启小程序安全加速能力。
步骤1:接入配置
1. 在 小程序安全加速页面,选择手动接入,单击开始接入。
2. 在新建小程序接入侧边栏中,填写完对应配置内容,即可单击保存配置,进入下一步。

参数名称 | 说明 |
节点名称 | 自定义节点名称。 |
小程序 ID | |
域名 | 选择已接入的小程序域名、协议端口。 |
步骤2:客户端配置
1. 环境加载。
在项目配置文件 app.json 中添加如下配置,以获得更好的兼容性,建议在发布前通过预览或者体验版在真机上测试小程序功能是否正常。
{ "cloud": true, "cloudVersion": "alpha" }
2. 域名配置。
2.1 在客户端配置页面,复制获取您的网关接入域名。

2.2 前往 微信公众平台,在开发管理中修改服务器域名,将网关的接入域名新增到小程序合法域名列表中。

3. 初始化小程序网关。
完成域名配置后,测试验证更改自己的网关 ID 信息。
// app.js App({ async onLaunch() { const gateway = wx.cloud.services.Gateway({ // 接入域名:即在网关接入层生成的域名,请复制“域名配置”中网关的接入域名 domain: 'a1dxxxx4a-wxxxxx1259xxxx5086.sh.wxcloudrun.com', }) // 复制到 cloud 对象上,方便后续调用 wx.cloud.gateway = gateway } })
4. 调用网关。
将项目中的
wx.request
调用更改为 wx.cloud.gateway.call
,以确保流量通过微信网关安全链路。除了 path 参数外,wx.cloud.gateway.call 的调用形式与 wx.request 基本相同。
path 参数不应包含域名和端口信息,如果 path 中包含了域名和端口,会忽略处理。
wx.cloud.gateway.call({ // 去除域名后的接口路径,中文需要转译 path:/?word=$
{
encodeURIComponent('微信网关访问')
}
, // 请求方法 method: 'GET', // 客户端发起请求时,可以自定义请求头中的header字段,如下: header: { // 'my-header': 'xxxxx' } // 其余参数与 wx.request 相同 }).then(result => { console.log('微信网关访问结果: ', result) })
调用成功示例:


WAF 检测到攻击,拦截示例:


步骤3:测试验证与发布确认
1. 小程序客户端代码适配完成之后,按照小程序发布标准,进行测试及其发布。
2. 小程序新版本正式发布之后,在 小程序安全加速页面 的接入配置第三步中同步修改状态为流量接入安全网关已验证,已发布,单击完成,即整个接入过程完成。
