Обфускация HTML
На платном тарифе можно обфусцировать 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
После обфускации преобразуются только скрипты с атрибутом 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
