最佳实践
如何有效地应用混淆:该保护什么、该放过什么,以及混淆无法为您做到什么。
建议
只混淆您自己的代码。
不要对第三方脚本、库或 polyfill 进行 VM 混淆。它们已经过压缩,混淆只会拖慢 它们的运行。
使用注释模式进行精准保护。
只用
/* javascript-obfuscator:vm */标记敏感函数,而不是保护所有内容。混淆后请充分测试。
务必在您的目标环境中测试混淆后的代码。某些选项可能以难以察觉的方式破坏代码。
将热路径排除在 VM 混淆之外。
对动画循环、实时渲染或被频繁调用的代码使用
vmExcludeFunctions。
关键安全提示
混淆会让逆向工程 更困难,但它 不是加密。有决心的攻击者总能从客户端代码中提取 数据。
相反,您应该:
- 将机密存储在您的后端服务器上
- 在服务端使用环境变量
- 通过您的后端代理 API 调用,以隐藏密钥
- 使用由您的服务器签发的短时有效令牌
您应该保护什么?
VM 混淆非常适合:
- 专有算法与业务逻辑
- 授权校验代码(客户端检查)
- 反篡改与完整性检查
- 游戏逻辑与反作弊机制
- 高级功能的实现
- 定价计算逻辑
