Защита информации сайта от копирования - Компьютерная документация по Windows. Оптимизация Windows.
 Компьютерная документация по Windows. Оптимизация Windows.  Компьютерная документация по Windows. Оптимизация Windows. Поиск
  Здравствуйте  [ Новый пользователь ] Домой  .  Статьи по темам  .  Компьютерная документация  .  Личный кабинет  .  Toп 10  .  Карта сайта  

  Навигация

 Главная   Главная
 Главная   Магазин софта
 Темы новостей   Темы новостей
 Топ 10   Топ 10
 Архив новостей   Архив новостей
 Карта сайта   Карта сайта
 Конструктор   Конструктор
 Обзоры   Обзоры
 Интересное   Интересное
 Рассылка новостей   Рассылка новостей
    Полезные ресурсы
 Пользователи   Пользователи
 Поиск   Поиск
 Написать нам   Написать нам
 Тест скорости   Тест скорости


  Наши темы
Windows 8
Windows 7
Windows Vista
Windows XP
Настройка Windows
Реестр Windows
Восстановление системы
MS-DOS
BIOS
Интернет
Microsoft Office
Сетевые настройки
Обработка видео
Вебмастеру
Оптимизация Windows
Обзор софта
Технологии, обзоры
Обзоры компьютеров и комплектующих
Рецензии
Полезные советы
Продвижение сайтов

Новые обзоры

Как заработать на ремонте компьютеров

Переработка отходов электроники

Типовые неисправности I:Phone, Pad, Pod и Macbook

Место для вашей электронной души

Ремонт компьютеров в Москве


Защита информации сайта от копирования

Размещено 27/11/2007

Вебмастеру Пока компьютерные издания рапортуют об увеличении числа сайтов, авторы многих из них вздрагивают; одни — опасаясь разоблачения, другие же боятся того, что плоды их труда попросту могут украсть. Думаю, каждый из читателей хотя бы раз слышал или читал историю о том, как новоявленные дизайнеры без зазрения совести, невзирая на знаки копирайта, просто крали графику, элементы сайта или полностью дизайн сайта у популярных конкурентов. Время от времени Сеть вздрагивает от подобных историй, произошедших не только с нашими малозаметными сайтами, но и с довольно известными международными порталами (кстати, в США, кража дизайна сайта приравнивается к краже частной собственности). С введением закона об электронной цифровой подписи защита контента становится куда более актуальной, так как фактически от этого зависит сохранность соглашений и документов, выложенных для публичного ознакомления на сайте. Ну что ж, как говорится, спасение утопающих — дело рук самих утопающих; давайте же попробуем в меру своих сил и умений хоть как-то защитить свой сайт от дизайнеров «с большой дороги».

В вопросе защиты контента сайта от копирования существует несколько отличных друг от друга подходов. Самым простым вариантом является использование возможностей JavaScript для блокирования функций выделения и копирования как графических, так и текстовых элементов web-страницы. Это не самый надежный, но при этом самый доступный вариант для большинства вебмастеров и серверов. Далее следует скриптовая защита — вернее, показ страницы через специальный php- или cgi-гейт, также не позволяющий производить копирование, сохранение и кэширование страниц. Однако в большинстве случаев подобные скрипты строятся на функции создания страницы на лету, а этот вариант не самый лучший с позиции защиты. Ну и наиболее «надежным» принято считать перевод всех элементов страницы в шестнадцатеричный код ASCII, закодированный в ISO Latin-1. Слово «надежным» я специально взял в кавычки, и на то есть две причины. Во-первых, эта технология предполагает работу с web-страницами в режиме кодирование-декодирование, что уже говорит о том, что пользователь, сохранив закодированную страницу, может создать скрипт, который декодирует первоначальный ASCII-код и сохранит его в читаемом виде где-нибудь на диске. Во-вторых, вряд ли можно считать настолько надежными те технологии, одинаковые и неизменные принципы которых может использовать любой пользователь Сети. В большей мере все эти подходы служат лишь для защиты от начинающих пиратов и от людей, малознакомых с подобными технологиями. Конечно, есть еще SSL, но в связи с тем, что это платный сервис, и не каждый готов за него платить, мы его рассматривать не будем.

Начнем с самого простого — с запрета на кэширование страницы. Хоть это может показаться ненужным шагом для защиты, большинство специалистов по безопасности считают это первым шагом на пути к полноценной защите сайта от копирования. Для запрета на кэширование необходимо всего-навсего сделать на это указание в разделе … :

или:

или:


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



В этом случае используются функции oncontextmenu и ondragstart, позаимствованные из JavaScript (оно и не мудрено, ведь JScript принят в Internet Explorer языком по умолчанию, что не требует обязательного указания атрибутов ). Скрипты от Java широко используется и для других функций защиты web-страниц, например для блокировки некоторых функций. Так, вы можете заблокировать функцию клика правой кнопкой мыши и известить пользователя об этих ограничениях специальным сообщением
Чтобы реализовать эту функцию, вам необходимо внести такой код в тело страницы, т.е. между тэгами … (текст выпадающего сообщения, конечно, вы можете изменить на свой вкус):


var mymessage = "Извините, но вы не можете просмотреть код страницы или скачать картинку.";
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
}
function rtclickcheck(keyp){
if (document.layers && keyp.which != 1) {
alert(mymessage);
return false;
}
if (document.all && event.button != 1) {
alert(mymessage);
return false;
}
}
document.onmousedown = rtclickcheck
//-->

Но не всегда есть необходимость уведомлять пользователя о запрете на копирование, достаточно просто ограничить эту функцию. Один из способов — внести в тэг специальное сообщение:



а в тело самой страницы поместить скрипт с функцией:


function notmenu() { window.event.returnValue=false; }


Но в этом случае все еще останутся доступными функции выделения текста и его копирования с помощью быстрых клавиш Ctrl+C. Если же надо запретить выделение, копирование и вызов контекстного меню, то в разделе следует поместить следующий скрипт:


document.ondragstart = test;
//запрет на перетаскивание
document.onselectstart = test;
//запрет на выделение элементов страницы
document.oncontextmenu = test;
//запрет на выведение контекстного меню
function test() {
return false
}


Все эти средства хороши лишь против нездоровой активности новичков, но не обеспечивают необходимой защиты сайту. Достаточно сохранить такую web-страницу на винчестере, а потом, открыв ее в блокноте, удалить указанный код, и уже потом использовать по своему усмотрению.

Существует как минимум еще один вариант защиты с использованием модальных окон. Для этого, правда, страницу надо открывать через специальную кнопку:

Показать
Страницу в таком окне нельзя ни скопировать, ни сохранить — но опять же, достаточно в блокноте или через функцию браузера Вид > Просмотр HTML-кода посмотреть код кнопки, чтобы определить адрес страницы и затем открыть ее в новом окне браузера.

Совсем по другому пути пошла Microsoft, которая еще в 1999 году анонсировала Microsoft Script Encoding или JScript.Encode. Суть этой технологии сводится к кодировке всей страницы в шестнадцатеричный код ASCII. В этом случае ни скопировать, ни сохранить страницу в читаемом виде нельзя, а вот просмотреть в Internet Explorer 5+ — пожалуйста. В основе этой технологии лежат все те же функции Java: для кодировки используется escape, а для перекодировки unescape. Хочу обратить ваше внимание на тот факт, что в этой технологии используется кодирование данных, а не их шифрование, т.е. символы заменяются другими символами, а не зашифровываются. Поэтому для прочтения страницы достаточно обладать инструментом, способным вернуть первоначальное значение измененного символа. Технология не использует никаких скрытых или публичных ключей, а значит, может быть реализована любым вебмастером. Реализовать этот способ шифрования можно как с помощью простенького скрипта на Java, так и с помощью php- и cgi-скриптов. Вот пример кода для шифрования страницы на JavaScript:


mystring = "Вставьте текст"
document.write (escape(mystring));


А вот что отобразит браузер:

%u0412%u0441%u0442%u0430%u0432%u044C%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442.

Как видите, совсем не похоже на начальный текст. В таком зашифрованном виде страница сохраняется на сайте, а для ее прочтения используется функция, ответственная за прочтение:

document.write (unescape("3%74…%68"))
Вместо цифробуквенной абракадабры в этом примере используется код вашей страницы после кодировки. Для того чтобы его ввести в эту функцию, используют либо скрипты-ридеры (что-то типа reader.cgi?page.htm), «читающие» весь ворох ваших страниц по запросу, либо дополнительные функции Java. Вот для того чтобы не делать ошибок в кодировании/декодировании, не «изобретать снова велосипед», как раз и придумали в компании Microsoft специальную технологию JScript.Encode. Как видите, к обычному JScript специально добавлено определяющее слово Encode. То есть программе-интерпретатору (или браузеру) таким образом мы сообщаем, что для перекодировки используется обычный JScript, и специальных программ для прочтения страницы не потребуется.

Microsoft предлагает для кодирования специальную программу screnc.exe ( http://download.microsoft.com/download/0/0/7/0073477f-bbf9-4510-86f9-ba51282531e3/sce10en.exe, 127 Кб). Эта программа позволяет кодировать файлы HTML, ASP, SCT, VBScript и JScript. Кодирование страниц с помощью программы screnc происходит через командную строку, для этого достаточно указать название страницы, которую вы хотите закодировать, и название, которое будет иметь страница после кодировки:

screnc mypage.htm codemypage.htm

Правда, кодироваться могут только страницы, имеющие атрибуты Jscript, или специально подготовленные для этой операции с помощью тэгов:


//**Start Encode**
//А здесь html-код страницы
//-->


Преобразование полученного кода в нормального вида страницу происходит так же непринужденно:



//**Start Encode**3%74%72%69%6E%67%2E%66%72%6F%6D%43%68






Существуют определенные требования к браузерам и операционным системам, с которыми работает Script Encoder от Microsoft. Так, в последнем релизе (февраль 2003 года) указывается, что программа работает с операционными системами Windows 2000, Windows 98, Windows ME, Windows NT, Windows XP, а также с браузерами Internet Explorer 5 и выше серий. Возможно, из-за этой специфики Script Encoder и не получил большого распространения.

Среди возможных альтернатив на рынке специализированных программ-кодировщиков можно назвать программу HTML Guardian — http://www.protware.com/dl/HTMLGuardian.exe, 6.26 Мб — компании ProtWare. Программа позволяет кодировать файлы форматов .htm, .html, .shtm, .shtml, .stn, .asp, .js, .vbs, .css, .php, .inc, а также графические .jpf, .gif (не анимированный) и .bmp. Помимо этого, программа позволяет кодировать отдельные фрагменты (например, реферальные ссылки, адреса e-mail) или скрипты html-страницы, а также закрывать доступ к коду страницы с помощью 384-битного ключа. Главное отличие HTML Guardian от Script Encoder состоит в том, что программа предлагает пользователю при кодировании файла выбрать опции кодирования, включающие в себя и ограничения на некоторые функции браузера (например, запрет на клик правой кнопкой мыши или на использование файла в оффлайне). В отличие от Script Encoder, HTML Guardian имеет возможность кодировки страницы и для альтернативных браузеров, также работает с IE версии 5 и выше. В отношении последнего ProtWare гарантирует максимальную безопасность.

Как видите, уважаемый читатель, при всем разнообразии подходов, даже минимальную защиту web-страниц могут обеспечить не все из них. Однако даже те инструменты, какие сегодня представлены на рынке, хоть частично, но все же могут сохранить ваши сайты от взлома и копирования.

Дополнительные материалы:

HTML Guardian — http://www.protware.com

Script Encoder — http://www.microsoft.com/downloads/details.aspx?FamilyId=E7877F67-C447-4873-B1B0-21F0626A6329&displaylang=en

Modal Dialog Method — http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/showmodaldialog.asp

Автор: Вячеслав БЕЛОВ (www.mycomputer.ua)


 



Компьютерная документация по Windows Copyright © 2008-2019