Лучшие практики
Как применять обфускацию эффективно: что защищать, что оставить как есть и чего обфускация сделать не может.
Рекомендации
Обфусцируйте только свой код.
Не применяйте VM-обфускацию к сторонним скриптам, библиотекам и полифилам. Они уже минифицированы, и обфускация лишь замедлит их.
Используйте режим комментариев для точечной защиты.
Помечайте только чувствительные функции комментарием
/* javascript-obfuscator:vm */, а не защищайте всё подряд.Тщательно тестируйте после обфускации.
Всегда проверяйте обфусцированный код в целевой среде. Некоторые опции могут неочевидно сломать код.
Исключайте «горячие» участки из VM-обфускации.
Используйте
vmExcludeFunctionsдля циклов анимации, рендеринга в реальном времени или часто вызываемого кода.
Важное замечание о безопасности
Обфускация делает обратную разработку труднее, но это не шифрование. Настойчивый злоумышленник всегда сможет извлечь данные из кода на стороне клиента.
Вместо этого следует:
- Хранить секреты на своём бэкенд-сервере
- Использовать переменные окружения на стороне сервера
- Проксировать вызовы API через бэкенд, чтобы скрыть ключи
- Использовать краткоживущие токены, выдаваемые вашим сервером
Что стоит защищать?
VM-обфускация идеальна для:
- Проприетарных алгоритмов и бизнес-логики
- Кода проверки лицензий (проверки на стороне клиента)
- Механизмов защиты от вмешательства и проверок целостности
- Игровой логики и механизмов защиты от читерства
- Реализации премиальных функций
- Логики расчёта цен
