实用方案
针对 javascript-obfuscator 常见集成难题的、有明确取向的端到端演练。每个方案都聚焦于如何组合各项选项以达成特定效果,而不是逐一讲解单个开关。
请挑选与您要解决的问题相匹配的方案。今后我们还会不断补充更多方案 —— 如果您遇到了这里尚未覆盖的集成场景,欢迎告诉我们,我们会把它整理成文。
本节内容
最佳实践
该保护什么、该放过什么,以及混淆无法为您做到什么。
从后端获取字节码数组密钥
使用异步密钥获取器在加载时从后端拉取密钥,让 VM 字节码解密密钥不出现在客户端。
宿主端模板替换
使用 reservedNames 和 reservedStrings,将服务端渲染的值注入到 VM 混淆后的 JavaScript 中。
对 LLM 分析隐藏函数名
为什么 VM 混淆后的代码仍可能向 LLM 泄露有意义的函数名,以及用 IIFE 包裹如何消除这种泄露。
诊断 VM 运行时错误
针对 "Invalid array length" 等 VM 运行时错误的分步排查清单,帮助区分 target / 自我防护的配置错误与真正的缺陷。
避免标识符冲突
为什么打包多个 VM 混淆后的文件会在解析阶段抛出 "Identifier already declared",以及如何用 random 或 hexadecimal 标识符解决。
eval 与 new Function 下的 VM 混淆
VM 混淆如何处理直接 eval 和 Function 构造器调用、哪些代码会被编译为字节码、哪些会被跳过、混淆器会发出哪些警告,以及如何诊断运行时的 ReferenceError。
VM 防御遥测与响应
使用 vmDefenseHook 将 VM 防御检测结果上报到您的后端,并通过 vmDefenseReaction 调整每个检测类别的响应方式。
