收藏
评论

小程序代码加固功能上线公告官方

为提高微信开放平台生态安全性,针对小程序开发过程中的安全问题,如代码易被反编译,核心业务逻辑被破译,算法易被二次打包等,导致小程序存在被破解、核心代码被盗取的风险,平台在微信开发者工具上线了代码加固功能,协助开发者保护小程序安全。

一、功能介绍


小程序代码加固是提供给开发者对小程序前端代码进行加密的功能,以防止代码暴露。该功能可将 JavaScript 文件传递给加密工具,从而实现字符串加密、属性加密、调用转换、代码混淆等多项保护措施,提高攻击者阅读前端代码逻辑的难度。


二、解决方案


微信开放平台通过在微信开发者工具中提供插件的方式,以便开发者进行功能的使用。同时还提供了Sourcemap代码加固调试工具,来帮助开发者对于加固后的文件进行错误分析。


三、功能使用


1、首先需在微信开发者工具选择代码加固插件进行安装;


2、选择需要加固的文件并进行配置操作,建议加固小程序中的敏感数据信息、核心算法逻辑、关键执行路径、接口(签名算法、协议、密钥等)。 

另:界面操作和渲染、引用的第三方开源库等非必要安全保护内容可不进行加固,避免过多影响小程序体积及性能。


3、最后加固成功后可进行后续页面的预览,具体使用说明详见 功能介绍文档


四、常见问题

Q1: 加固后显示编译结果失败?

A1: 表示所加固的小程序内容,在小程序编译结果中没有对应的代码,所以导致替换失败,可以根据失败的提示信息,进行具体排查

显示

Q2: 如果想一次性批量进行代码加固,应该如何操作呢?

A2: 若需要批量进行代码加固,可直接修改code_obfuscation_config.json中的configs字段即可

显示

代码示例如下:


Q3: 使用 Sourcemap 代码加固调试时,为什么查找不到报错路径?

A3: srcMiniprogramRoot目录下不存在该报错文件所对应的源文件

显示

Q4: 代码加固后会对产品性能有影响吗?

A4: 产品性能影响与代码加固的内容、大小和数量有关,可能会影响代码体积,产品初始化耗时和执行速度,可通过 性能说明文档 作进一步了解。



如有其他相关疑问,欢迎随时参与社区讨论


48280浏览
最后一次编辑于  2022-07-22
收藏

32 个评论

  • 项布斯
    项布斯
    2023-06-14

    代码加固后,会把projectmaps也上传到微信后台吗?加固后生成的map文件还挺大的,很占用主包的体积。

    2023-06-14
    赞同
    回复
  • 🥓
    🥓
    2022-11-15

    这边加固配置文件写好预览后总是报无效路劲,目录感觉也没啥问题呀

    2022-11-15
    赞同
    回复 5
    • 社区运营专员-wetingtu
      社区运营专员-wetingtu
      2022-11-15
      你好,麻烦先更新到最新版的开发者工具和插件,再重试看看
      2022-11-15
      回复
    • 🥓
      🥓
      2022-11-15回复社区运营专员-wetingtu
      开发者工具版本更新到2210310,插件版本0.0.6,app.json还是无效路径
      2022-11-15
      回复
    • 🥓
      🥓
      2022-11-15回复社区运营专员-wetingtu
      目前用了反编译查看只有app.js加固有效,其他的类似page/..和app.json都无效,编译的目录不就是上图左侧的目录嘛
      2022-11-15
      回复
    • 社区运营专员-wetingtu
      社区运营专员-wetingtu
      2022-11-15回复🥓
      你好,这里核实到问题了,目前只能加固js文件的哈
      2022-11-15
      回复
    • 🥓
      🥓
      2022-11-15回复社区运营专员-wetingtu
      好的,谢谢啦
      2022-11-15
      回复
  • 俊波
    俊波
    2022-11-08

    请问代码加固生成的 projectmaps 文件夹是必须生成吗?生成后必须放置在主包内吗?一个普通的2、3百行代码文件加固后生成的 json map 文件动辄1、2百k, 非常占用主包大小。有好的配置方法不生成或者不放主包内吗?

    2022-11-08
    赞同
    回复 1
    • 社区运营专员-wetingtu
      社区运营专员-wetingtu
      2022-11-08
      你好,projectmaps文件是本地使用,用于后续代码故障排查的,无需打进主包进行上传哈
      2022-11-08
      回复
  • up
    up
    2022-08-03

    请问一下 比如一个加密算法。 加固了之后 别人反编译了小程序 只需要把文件复制过去引用一下 不就好了 也不需要去看去改什么。那么 这个加固还有用吗?

    2022-08-03
    赞同
    回复 10
    • 社区运营专员-wetingtu
      社区运营专员-wetingtu
      2022-08-03
      你好,加固后无法直接获取源代码,可以提高攻击者阅读前端代码逻辑的难度,加固对保护代码安全肯定是有用的
      2022-08-03
      回复
    • up
      up
      2022-08-03回复社区运营专员-wetingtu
      意思就只是混淆之类的呗? 想要调用里面的方法 参考其他页面调用方式 也能用 对把
      2022-08-03
      回复
    • 社区运营专员-wetingtu
      社区运营专员-wetingtu
      发表于小程序端
      2022-08-03回复up

      不是的哈,除了混淆还有其他的保护措施,所描述的情况是无法实现的,建议对需要安全保护的代码进行加固哈

      2022-08-03
      回复
    • up
      up
      2022-08-03回复社区运营专员-wetingtu
      那我这样问:一个小程序就一个静态页面,把它加固后。别人反编译后,到开发者工具里 能打开吗?
      2022-08-03
      回复
    • 社区运营专员-wetingtu
      社区运营专员-wetingtu
      2022-08-03回复up
      分析反编译后的代码是极为困难的,更无法直接运行,若你仍有担忧,也可进行全面的代码加固,相对来说,加固的代码越多被破解的难度越高
      2022-08-03
      回复
    查看更多(5)
  • Lycrab
    Lycrab
    2022-07-26

    插件叫什么名字? 为什么开发者工具里面没有?

    2022-07-26
    赞同
    回复 3
  • dreamhunter
    dreamhunter
    2022-07-26

    666

    2022-07-26
    赞同
    回复
  • baoquan
    baoquan
    2022-07-25

    666

    2022-07-25
    赞同
    回复 1
    • HH😈
      HH😈
      2022-08-02
      哈哈
      2022-08-02
      回复
  • TY
    TY
    发表于移动端
    2022-07-25
    某宝上面9.9卖别人小程序源码的商家可以歇菜了
    2022-07-25
    赞同
    回复
  • 茜茜又困了🐽
    茜茜又困了🐽
    2022-07-22

    牛哇牛哇

    2022-07-22
    赞同
    回复
  • 
    
    发表于小程序端
    2022-07-21

    666

    2022-07-21
    赞同
    回复

正在加载...

登录 后发表内容