为提高微信开放平台生态安全性,针对小程序开发过程中的安全问题,如代码易被反编译,核心业务逻辑被破译,算法易被二次打包等,导致小程序存在被破解、核心代码被盗取的风险,平台在微信开发者工具上线了代码加固功能,协助开发者保护小程序安全。
一、功能介绍
小程序代码加固是提供给开发者对小程序前端代码进行加密的功能,以防止代码暴露。该功能可将 JavaScript 文件传递给加密工具,从而实现字符串加密、属性加密、调用转换、代码混淆等多项保护措施,提高攻击者阅读前端代码逻辑的难度。
二、解决方案
微信开放平台通过在微信开发者工具中提供插件的方式,以便开发者进行功能的使用。同时还提供了Sourcemap代码加固调试工具,来帮助开发者对于加固后的文件进行错误分析。
三、功能使用
1、首先需在微信开发者工具选择代码加固插件进行安装;
2、选择需要加固的文件并进行配置操作,建议加固小程序中的敏感数据信息、核心算法逻辑、关键执行路径、接口(签名算法、协议、密钥等)。
另:界面操作和渲染、引用的第三方开源库等非必要安全保护内容可不进行加固,避免过多影响小程序体积及性能。
3、最后加固成功后可进行后续页面的预览,具体使用说明详见 功能介绍文档。
四、常见问题
Q1: 加固后显示编译结果失败?
A1: 表示所加固的小程序内容,在小程序编译结果中没有对应的代码,所以导致替换失败,可以根据失败的提示信息,进行具体排查
Q2: 如果想一次性批量进行代码加固,应该如何操作呢?
A2: 若需要批量进行代码加固,可直接修改code_obfuscation_config.json
中的configs
字段即可
代码示例如下:
Q3: 使用 Sourcemap 代码加固调试时,为什么查找不到报错路径?
A3: srcMiniprogramRoot目录下不存在该报错文件所对应的源文件
Q4: 代码加固后会对产品性能有影响吗?
A4: 产品性能影响与代码加固的内容、大小和数量有关,可能会影响代码体积,产品初始化耗时和执行速度,可通过 性能说明文档 作进一步了解。
如有其他相关疑问,欢迎随时参与社区讨论。
还有,为什么我做小程序整体加固,会有这个异常“获取登录态失败,请检查登录态是否失效/appid未填写/测试号”
当前是在登录内,并且appid也存在
我在做批量加固时,总是加固失败,说什么语法错误,但是单独对该文件进行加固是没有这个问题的。大家有在用代码加固吗?
加固后,会生成一个加固后的文件,发布的时候,原文件也会被上传上去吗?如何不上传原文件,保证包的大小体积不要增大太多?
你好,内网环境开发,无法下载“代码加固”插件,需要配置什么吗?
报错:代码加固 下载失败,请重试 downloadPlugin wxext871b2e053677418 0.1.1 fail Error: tunneling socket could not be established, statusCode=403
怎么全部加密呢? pages/**/**这种,项目页面和插件太多了,一个一个写不太现实
你好,我看腾讯云有收费的小程序加固售卖,跟这里免费的有什么区别吗?那个收费版还挺贵的,一次要5000.
{
"desc": "关于本文件的更多信息,请参考文档 代码加固开发者文档",
"switch": true, // 加固总开关,关闭则不执行加固流程
"configs": []
}
这样子的配置,就是对整个小程序的代码进行加固吗
您好,配置的加固路径,支持/pages/*.js这种批量加固吗
您好,配置的加固路径,支持/pages/*.js这种批量加固吗
您好,加固的path路径,支持*.js,加固整个文件夹下的文件吗?目前没有找到相关文档