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

Обфускация HTML

Обфускация HTML

Pro

На платном тарифе можно обфусцировать HTML-файлы со встроенным JavaScript. Обфускатор извлекает отмеченные теги <script>, обфусцирует их содержимое и сохраняет окружающий HTML - это работает как с базовой, так и с VM-обфускацией.

Включите опцию Parse HTML, и обфускатор автоматически извлечёт теги <script>, обфусцирует их содержимое и сохранит структуру HTML.

Как это работает: обфускатор разбирает ваш HTML и находит непустые встроенные теги <script>, отмеченные атрибутом data-javascript-obfuscator. Каждый отмеченный скрипт обфусцируется отдельно, и на выходе получается полный HTML с защищёнными скриптами. Скрипты с src или type="module" пропускаются, даже если у них есть этот атрибут.

Важно: код внутри каждого тега script с data-javascript-obfuscator должен быть самодостаточным. Скрипты обфусцируются по отдельности, поэтому не полагайтесь на имена, переименованные внутри другого отмеченного скрипта. Неотмеченные скрипты по-прежнему могут использовать глобальные имена, которые защищённые скрипты явно сохраняют (через объявления var или присваивания в globalThis).

Пример

Входной HTML

HTML

После обфускации преобразуются только скрипты с атрибутом data-javascript-obfuscator. Всё остальное содержимое остаётся без изменений.

Ограничения

Расчёт использования: учитывается объём JavaScript, выбранного для обфускации (с учётом минимальной оплаты за задачу), а не полный размер HTML-файла. Однако ограничение на максимальный размер загружаемого файла применяется ко всему HTML-файлу.

Функция «Evaluate output» отключена: при включённом Parse HTML функция «Evaluate output» недоступна, так как HTML нельзя выполнить как JavaScript.

  • Обфусцируются только непустые встроенные скрипты с атрибутом data-javascript-obfuscator
  • Скрипты с src или type="module" остаются без изменений, даже при наличии атрибута
  • Каждый тег script обфусцируется отдельно - код должен быть самодостаточным и не может ссылаться на имена, переименованные в других отмеченных тегах script
  • Атрибуты обработчиков событий (onclick, onload и т. д.) не обфусцируются
  • JavaScript-URL (протокол javascript:) не обфусцируются
  • Скрипты внутри HTML-комментариев игнорируются
  • Source maps не поддерживаются при включённом Parse HTML