Документация
/

VM-обфускация

VM-обфускация

Highest Security

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

Укажите, по какой схеме отдаётся ваша продакшен-сборка, чтобы защищённый код мог привязать к ней свою целостность.