Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Шифрование кода
Мы переходим к рассмотрению более сложных технологий защиты исходного кода веб-страниц. Не буду утверждать, что они обеспечивают стопроцентную защиту. Может быть, можно разработать программное обеспечение, гарантирующее достаточно эффективный автоматизированный взлом описываемых далее защитных механизмов. Но во всяком случае, задача взлома этих механизмов неочевидна.
О защите видимого HTML-кода
Сразу оговоримся. Описанные далее методы не позволяют защитить конечный HTML (без JavaScript), который пользователь в конце концов видит на защищенных страницах. Видимый HTML всегда можно скопировать из Internet Explorer через ClipBoard в HTML-редактор, как уже было сказано в предыдущем разделе. Мне трудно представить ситуацию, когда HTML, уже видимый пользователю, настолько сложен, что его крайне трудно воспроизвести по содержимому экрана и, соответственно, имеет смысл защищать от анализа.
Серьезная защита уже визуализированного HTML невозможна в принципе. Это очевидно: всегда можно «слегка исправить» стандартный браузер, например Internet Explorer, так, чтобы в момент анализа HTML-кода и воспроизведения его на экране весь этот HTML сохранялся в протоколе на диске. Но на «несерьезном» уровне кое-какая защита все же возможна.
Вот пример такой защиты для Internet Explorer, признаюсь, не слишком «изящной». Можно просто запретить пользователю выделять какие-либо фрагменты страницы, тогда он не сможет ничего скопировать в ClipBoard. Один из способов это сделать в Internet Explorer – 10 раз в секунду исполнять примерно такую конструкцию:
var rng= document.body.createTextRange();
rng.moveToPoint(0,0);
rng.select();
Саморасшифровывающиеся функции
Самый очевидный путь построения защиты основан на шифровании. Мы сосредоточимся только на защите JavaScript-кода: любой HTML-код можно сгенерировать динамически средствами JavaScript.
Будем считать, что JavaScript-код, в соответствии с хорошим тоном программирования, состоит из большого количества не слишком больших функций. Мы начнем со следующей идеи.
Давайте зашифруем основное тело каждой функции и добавим в ее начало код, расшифровывающий и исполняющий ее тело. В языке JavaScript это означает, что текст функции