为提高微信开放平台生态安全性,针对小程序开发过程中的安全问题,如代码易被反编译,核心业务逻辑被破译,算法易被二次打包等,导致小程序存在被破解、核心代码被盗取的风险,平台在微信开发者工具上线了代码加固功能,协助开发者保护小程序安全。
一、功能介绍
小程序代码加固是提供给开发者对小程序前端代码进行加密的功能,以防止代码暴露。该功能可将 JavaScript 文件传递给加密工具,从而实现字符串加密、属性加密、调用转换、代码混淆等多项保护措施,提高攻击者阅读前端代码逻辑的难度。
二、解决方案
微信开放平台通过在微信开发者工具中提供插件的方式,以便开发者进行功能的使用。同时还提供了Sourcemap代码加固调试工具,来帮助开发者对于加固后的文件进行错误分析。
三、功能使用
1、首先需在微信开发者工具选择代码加固插件进行安装;
2、选择需要加固的文件并进行配置操作,建议加固小程序中的敏感数据信息、核心算法逻辑、关键执行路径、接口(签名算法、协议、密钥等)。
另:界面操作和渲染、引用的第三方开源库等非必要安全保护内容可不进行加固,避免过多影响小程序体积及性能。
3、最后加固成功后可进行后续页面的预览,具体使用说明详见 功能介绍文档。
四、常见问题
Q1: 加固后显示编译结果失败?
A1: 表示所加固的小程序内容,在小程序编译结果中没有对应的代码,所以导致替换失败,可以根据失败的提示信息,进行具体排查
Q2: 如果想一次性批量进行代码加固,应该如何操作呢?
A2: 若需要批量进行代码加固,可直接修改code_obfuscation_config.json
中的configs
字段即可
代码示例如下:
Q3: 使用 Sourcemap 代码加固调试时,为什么查找不到报错路径?
A3: srcMiniprogramRoot目录下不存在该报错文件所对应的源文件
Q4: 代码加固后会对产品性能有影响吗?
A4: 产品性能影响与代码加固的内容、大小和数量有关,可能会影响代码体积,产品初始化耗时和执行速度,可通过 性能说明文档 作进一步了解。
如有其他相关疑问,欢迎随时参与社区讨论。
能设计一个一键加固功能吗
加密了怎么破解?
需要增加 ci 工具支持的,在这里集合。
秀儿,是你吗?秀儿!!!
请问这个开发者自行加固是市面上卖的加固服务有什么区别,比如这个网易易盾这种https://dun.163.com/product/android-reinforce?from=baiduP_YYJG_C190307P2&sdclkid=A5f615ei15fiASDixOj
代码加固,提示加固无法发起,加固配置内没有合法的js文件,请问这是什么原因?
正常编译、调试、运行都是OK的。加固配置文件内容如下:
{
"desc": "关于本文件的更多信息,请参考文档 代码加固开发者文档: https://developers.weixin.qq.com/miniprogram/dev/devtools/code_obfuscation.html",
"switch": true,
"configs": [
{
"path": "app.js",
"sub_switch": true
}
]
}
这必须赞一个,虽然做小程序的大多都不是大牛,但好歹也是自己辛辛苦苦写出来的,别人模仿一个倒也无所谓,换皮就真心难受,特别是那些成产业链条的公司,简直恶心到家。我两年前写的一个小程序,找不到源码了,前几天直接网上傻瓜教程,完美反编,除了有一个js的名字改了,其他一摸一样,再加上本来就是自己的云环境,完美运行啊,庆幸之余也心有余悸。理论上讲,小程序是在微信生态里闭环运行的,可以做一套开发加密,运行解密的环境,类似对称加密那种,不定时修改密钥,基本上能达到99%的安全。希望这次的加固能挺得久一点,赞!
请问相关文件加固一次后,后续是不是就会默认加固了?
有没有可能默认对所有上传的小程序代码进行自动加固?