Шифрование HTML-кода
Превратите HTML в JavaScript-строку, которая выводит тот же код, но не читается при просмотре исходника.
Всё считается в вашем браузере: введённые данные никуда не отправляются.
Как это работает
Каждый символ HTML-кода записывается в процентной кодировке, а результат оборачивается в скрипт: document.write(unescape('%3C%64%69%76…')). При загрузке страницы браузер раскодирует строку и выведет исходный HTML. В исходном коде страницы виден только набор процентов.
Для чего это подходит
- скрыть email-адрес или телефон от простых ботов-сборщиков, которые читают HTML без выполнения скриптов;
- не дать скопировать вёрстку небольшого блока «в два клика»;
- вставить HTML туда, где редактор вырезает теги, но разрешает скрипты.
Ограничения — прочитайте до использования
Это обфускация, а не настоящее шифрование. Любой, кто откроет инструменты разработчика, увидит итоговый HTML: браузер его уже раскодировал. Не используйте приём для защиты паролей, ключей или коммерческой тайны.
У способа есть и цена:
- SEO. Поисковые роботы выполняют JavaScript не всегда и не сразу. Текст, выведенный через
document.write, может не попасть в индекс — не шифруйте контент, который должен находиться в поиске. - Скорость.
document.writeблокирует отрисовку страницы, а Chrome на медленных соединениях может вовсе запретить его для внешних скриптов. - Политика безопасности. На сайтах со строгим заголовком Content-Security-Policy встроенные скрипты не выполнятся.
Частые вопросы
Можно ли расшифровать код обратно?
Да, это делается за секунду: достаточно выполнить unescape над строкой или открыть страницу в инструментах разработчика. Поэтому способ не защищает секреты.
Повлияет ли это на индексацию?
Может повлиять отрицательно: часть роботов не выполняет JavaScript. Важный для SEO текст оставляйте обычным HTML.
Поддерживается ли кириллица?
Да, русские символы кодируются в формате %uXXXX и выводятся без искажений.