VM-обфускация
VM-обфускация превращает ваши JavaScript-функции в собственный байт-код, который выполняется на виртуальной машине, встроенной в результат, так что защищённая логика больше не поставляется в виде читаемого JavaScript.
VM-защита применяется к подходящим функциям. В режиме root опция vmWrapTopLevelInitializers также может оборачивать подходящие инициализаторы, чтобы виртуализировать и их; текущие VM-пресеты её включают. Просматривайте предупреждения о покрытии, такие как VMNoFunctionsToVirtualize, и используйте режим комментариев, чтобы явно выбрать чувствительные функции.
Обфускация повышает стоимость реверс-инжиниринга, но не делает его невозможным, поэтому храните секреты и принимайте окончательные решения, связанные с безопасностью, на сервере; что обфускация может и чего не может гарантировать, описано в разделе Лучшие практики.
Нужна помощь? Если VM-обфускация работает неправильно, см. раздел Диагностика ошибок выполнения VM: там описано, как сузить проблему и отправить отчёт об ошибке.
В этом разделе
Совместимость со средой
Соответствие сборки месту её выполнения: опция Target, защиты времени выполнения и то, что должен сохранить конвейер сборки.
Как VM преобразует код
Что VM оставляет на виду, а что скрывает, и как защитить имена функций.
Выбор конкретных функций
Выборочная VM-обфускация только чувствительных функций для оптимальной производительности.
Register-Based VM
Переключает VM на регистровую модель выполнения - быстрее во время выполнения ценой немного большего размера бандла.
Async Executor
Запускайте VM асинхронно, чтобы ключ расшифровки байт-кода можно было получить во время выполнения, а не поставлять его в бандле.
Совместимость со strict mode
Объявляйте строгий режим, чтобы VM компилировала корректный байт-код.
Поведение прямого eval
Почему прямой вызов eval() отключает VM-обфускацию и как обойти эту ловушку.
VM Self Defending
Обнаружение вмешательства, проверки целостности кода и защита от хуков для среды выполнения VM.
VM Debug Protection
Меры противодействия отладке для кода под защитой VM.
VM Domain Lock
Ограничьте выполнение обфусцированного VM-кода конкретными доменами и поддоменами.
Browser Environment
Укажите, по какой схеме отдаётся ваша продакшен-сборка, чтобы защищённый код мог привязать к ней свою целостность.
