为提高微信开放平台生态安全性,针对小程序开发过程中的安全问题,如代码易被反编译,核心业务逻辑被破译,算法易被二次打包等,导致小程序存在被破解、核心代码被盗取的风险,平台在微信开发者工具上线了代码加固功能,协助开发者保护小程序安全。
一、功能介绍
小程序代码加固是提供给开发者对小程序前端代码进行加密的功能,以防止代码暴露。该功能可将 JavaScript 文件传递给加密工具,从而实现字符串加密、属性加密、调用转换、代码混淆等多项保护措施,提高攻击者阅读前端代码逻辑的难度。
二、解决方案
微信开放平台通过在微信开发者工具中提供插件的方式,以便开发者进行功能的使用。同时还提供了Sourcemap代码加固调试工具,来帮助开发者对于加固后的文件进行错误分析。
三、功能使用
1、首先需在微信开发者工具选择代码加固插件进行安装;
2、选择需要加固的文件并进行配置操作,建议加固小程序中的敏感数据信息、核心算法逻辑、关键执行路径、接口(签名算法、协议、密钥等)。
另:界面操作和渲染、引用的第三方开源库等非必要安全保护内容可不进行加固,避免过多影响小程序体积及性能。
3、最后加固成功后可进行后续页面的预览,具体使用说明详见 功能介绍文档。
四、常见问题
Q1: 加固后显示编译结果失败?
A1: 表示所加固的小程序内容,在小程序编译结果中没有对应的代码,所以导致替换失败,可以根据失败的提示信息,进行具体排查
Q2: 如果想一次性批量进行代码加固,应该如何操作呢?
A2: 若需要批量进行代码加固,可直接修改code_obfuscation_config.json
中的configs
字段即可
代码示例如下:
Q3: 使用 Sourcemap 代码加固调试时,为什么查找不到报错路径?
A3: srcMiniprogramRoot目录下不存在该报错文件所对应的源文件
Q4: 代码加固后会对产品性能有影响吗?
A4: 产品性能影响与代码加固的内容、大小和数量有关,可能会影响代码体积,产品初始化耗时和执行速度,可通过 性能说明文档 作进一步了解。
如有其他相关疑问,欢迎随时参与社区讨论。