Очень часто приходиться слышать вопрос о том, как защитить свою .html страницу от копирования другими. На этот вопрос можно ответить просто: никак. Кому надо узнать – узнает. Но можно значительно затруднить попытки копирования, что в ряде случаев помогает. Против чайников, конечно.

Здесь я по
елюсь своим опытом кодировки-декодировки HTML кода в целях информирования пользователей сети Интернет о способах защиты своих сайтов от несанкционированного доступа или о способах устранения этой защиты, что равносильно. Мне кажется, полезная будет информация.

Предлагаемое решение – только затруднение для попыток разобраться. Всегда можно взять файлы из временной папки Интернета и, переименовав их в текст, просмотреть в Блокноте.

Просматривал я как-то каталог Лучшие сайты Boom.ru, и наткнулся на некий сайт cat2000.boom.ru. Понравилась ремарка этого сайта. Зашел, посмотрел на красивые картинки. Ничего особенного. Однако создатель сайта запрограммировал открытие окна при просмотре на весь экран. И без меню броузера. Так, что зайдя на страницу, Вы не можете из нее выйти иным способом, нежели тем, который Вам предлагает автор сайта. Естественно, такое поведение вызывает раздражение.

Поскольку меня это задело (как, впрочем, и всегда задевает всех нормальных людей, когда их без спросу и предупреждения лишают привычных возможностей), и мне интересно стало каким образом это делается, я произвел следующие операции:

1. Сохраняю на диске входную страницу на сайт (она в нормальном виде) и, на всякий случай, отключаюсь от сети. Открываю в меню броузера Вид -> В виде HTML входную страницу и в Блокноте вижу абракадабру. (Сразу рекомендации по ходу дела для тех, кто кодирует: все содержание сайта всегда пишите в одну строку. Тогда труднее будет форматировать для облегчения понимания сути.)

2. Форматирую абракадабру до уровня, на котором начинаю понимать, что это скрипты, причем слово Decode() – комментариев не требует. Все понятно. (Рекомендация кодировщику: никогда не используйте осмысленных названий. Замените осмысленные названия функций и переменных ложными или бессмысленными названиями).

3. Но скрипты меня не волнуют. Мне надо узнать адрес страницы, которая делает безобразие. В строке статуса при вызове этой страницы стоит javascript:void(0). Хорошо, значит его и надо искать. Как? Не имея никаких начальных соображений, я просто убрал первый символ в первой закодированной строке с целью посмотреть, что из этого выйдет. (Рекомендация кодировщику: посчитайте каким-нибудь способом контрольные суммы закодированных блоков (строк), и перед раскодированием каждого блока (строки) проверяйте неизменность контрольных сумм.)

4. Потом запустил измененный файл. Естественно, вижу на экране:
html и далее без изменений. Все понятно. Дальнейшие действия очевидны: надо просто убрать все теги. Тогда броузер будет печатать на экране содержание этих тегов.

5. Копирую из Блокнота содержание абракадабры в Word и автоматически заменяю все символы “F”, которые соответствуют символу”<“, на случайно выбранный символ “*”. Не очень удачный выбор оказался, но не суть. Потом из Worda опять в Блокнот и, сохранив, запускаю в IE.5.0.

6. Естественно, в IE5.0 вижу распечатку раскодированных символов кода, но без тегов, и нахожу среди них искомый javascript:void(0), который ссылается на искомый мной файл: scrn.html.

7. Набираю имя этого файла в строке адреса. Распрекрасно высвечиваются все фреймы сайта, но уже в моей конфигурации IE5.0 с моими любимыми кнопочками “Назад” и “Правка”.

8. Сохраняю это все без правой кнопки мыши через меню броузера на винчестере. Дальнейшее неинтересно, т.к. я хотел только раскодировать.

Таким образом, предложенный метод применим к взлому любых кодировок, поскольку при любых кодировках первые символы отражаемого броузером кода должны быть и т.д.

Если Вы, наоборот, кодируете свою страницу, то, выполнив все указанные рекомендации, Вы затрудните попытки взлома, аналогичные моим. Однако, узнав адрес страницы, пользователь может переписать Вашу страницу, как это сделал я. Как этого не допустить? Предлагаю следующее решение (если Вы его улучшите, рад буду Вашему варианту):

1. Файл scrn.html, на который ссылается вход, сделать промежуточным, записав скриптовый вызов из него файла scrn2.html, который и есть уже Ваша страница во весь экран. Скриптовый вызов по событиям загрузки и перемещения мыши. Тогда пользователь, набрав в строке адреса scrn.html, автоматом переходит на scrn2.html при отнятых у него клавишах управления броузером, и не успеет сообразить, что есть что. Вот если бы еще убрать ссылочку на scrn2.html из строки location.history! Совсем бы хорошо было. Не для пользователя, конечно, а для “секретного” содежания сайта.

2. Дополнительно можно порекомендовать разнести файлы scrn.html и scrn2.html в пространстве. То есть scrn.html разместить на одном сервере (допустим, на boom.ru), а scrn2.html – на другом сервере (например, на narod.ru). Таким образом Вы их разнесете и во временной папке Интернета. Тогда взломщику сложнее будет додуматься, что есть что.

Вежливость потребовала от меня попросить у автора сайта cat2000.boom.ru разрешение на публикацию изложенного материала. На мою просьбу автор ответил согласием.

Та же вежливость требует никогда не использовать методы, описанные выше, без предварительного предупреждения посетителей сайта. Если, конечно, Вам не безразлично их мнение о Вашей благовоспитанности.

А. Константинов
www.academ.org

By Ruslan Novikov

Интернет-предприниматель. Фулстек разработчик. Маркетолог. Наставник.