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