Защита информации сайта от копирования
В вопросе защиты контента сайта от копирования существует несколько отличных друг от друга подходов. Самым простым вариантом является использование возможностей JavaScript для блокирования функций выделения и копирования как графических, так и текстовых элементов web-страницы. Это не самый надежный, но при этом самый доступный вариант для большинства вебмастеров и серверов. Далее следует скриптовая защита — вернее, показ страницы через специальный php- или cgi-гейт, также не позволяющий производить копирование, сохранение и кэширование страниц. Однако в большинстве случаев подобные скрипты строятся на функции создания страницы на лету, а этот вариант не самый лучший с позиции защиты. Наиболее надежным принято считать перевод всех элементов страницы в шестнадцатеричный код ASCII, закодированный в ISO Latin-1. Во-первых, эта технология предполагает работу с web-страницами в режиме кодирование-декодирование, что уже говорит о том, что пользователь, сохранив закодированную страницу, может создать скрипт, который декодирует первоначальный ASCII-код и сохранит его в читаемом виде где-нибудь на диске. Во-вторых, вряд ли можно считать настолько надежными те технологии, одинаковые и неизменные принципы которых может использовать любой пользователь Сети. В большей мере все эти подходы служат лишь для защиты от начинающих пиратов и от людей, малознакомых с подобными технологиями. Конечно, есть еще SSL, но в связи с тем, что это платный сервис, и не каждый готов за него платить, мы его рассматривать не будем. Запрет кеширования страницыБольшинство специалистов по безопасности считают это первым шагом на пути к полноценной защите сайта от копирования. Для запрета на кэширование необходимо всего-навсего сделать на это указание в разделе <head>… </head>:<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> Защита от копирования элементов страницыЕсли необходимо защитить исключительно графические файлы, то можно обойтись следующим кодом:<span oncontextmenu="return false;" ondragstart="return false";><img src="picture.jpg" galleryimg="no"></span> В этом случае используются функции oncontextmenu и ondragstart, позаимствованные из JavaScript (оно и не мудрено, ведь JScript принят в Internet Explorer языком по умолчанию, что не требует обязательного указания атрибутов. Ограничение функции сохранения картинкиЗаблокировать функцию клика правой кнопкой мыши и известить пользователя об этих ограничениях специальным сообщением можно внеся в тег <body>…</body> код:<script type="text/javascript" language="Javascript1.2" > Заблокировать выпадающее меню полностью...вы можете указав в теге body соответствующую функцию<body oncontextmenu="notmenu();">а в теле документа описав ее
Запретить копирование через Ctrl+CВ разделе <head> прописываем запреты: <SCRIPT LANGUAGE="JavaScript">Все эти средства хороши лишь против нездоровой активности новичков, но не обеспечивают необходимой защиты сайту. Достаточно сохранить такую web-страницу на винчестере, а потом, открыв ее в блокноте, удалить указанный код, и уже потом использовать по своему усмотрению. Защита от копирования модальными окнамиДля этого страницу надо открывать через специальную кнопку:<BUTTON onclick='window.showModalDialog("page.html")'>Показать</BUTTON>Страницу в таком окне нельзя ни скопировать, ни сохранить — но опять же, достаточно в блокноте или через функцию браузера Вид > Просмотр HTML-кодапосмотреть код кнопки, чтобы определить адрес страницы и затем открыть ее в новом окне браузера. Кодировка исходного кода страницыВ 1999 году был анонсирован Microsoft Script Encoding или JScript.Encode. Суть этой технологии сводится к кодировке всей страницы в шестнадцатеричный код ASCII. В этом случае ни скопировать, ни сохранить страницу в читаемом виде нельзя, а вот просмотреть в Internet Explorer 5+ — пожалуйста. В основе этой технологии лежат все те же функции Java: для кодировки используется escape, а для перекодировки unescape. Хочу обратить ваше внимание на тот факт, что в этой технологии используется кодирование данных, а не их шифрование, т.е. символы заменяются другими символами, а не зашифровываются. Поэтому для прочтения страницы достаточно обладать инструментом, способным вернуть первоначальное значение измененного символа. Технология не использует никаких скрытых или публичных ключей, а значит, может быть реализована любым вебмастером. Реализовать этот способ шифрования можно как с помощью простенького скрипта на Java, так и с помощью php- и cgi-скриптов. Вот пример кода для шифрования страницы на JavaScript:<SCRIPT Language = "JavaScript">А вот что отобразит браузер: %u0412%u0441%u0442%u0430%u0432%u044C%u0442%В зашифрованном виде страница сохраняется на сайте, а для ее прочтения используется функция, ответственная за прочтение: document.write (unescape("3%74…%68"))Вместо цифробуквенной абракадабры в примере используется код вашей страницы после кодировки. Для того чтобы его ввести в эту функцию, используют либо скрипты-ридеры (что-то типа reader.cgi?page.htm), «читающие» весь ворох ваших страниц по запросу, либо дополнительные функции Java. Вот для того чтобы не делать ошибок в кодировании/декодировании, не «изобретать снова велосипед», как раз и придумали в компании Microsoft специальную технологию JScript.Encode. Как видите, к обычному JScript специально добавлено определяющее слово Encode. То есть программе-интерпретатору (или браузеру) таким образом мы сообщаем, что для перекодировки используется обычный JScript, и специальных программ для прочтения страницы не потребуется. Microsoft предлагает для кодирования специальную программу screnc mypage.htm codemypage.htmКодироваться могут только страницы, имеющие атрибуты Jscript, или специально подготовленные для этой операции с помощью тэгов: <SCRIPT language="JScript">Преобразование полученного кода в нормального вида страницу происходит так же непринужденно: <HTML><HEAD>Существуют определенные требования к браузерам и операционным системам, с которыми работает Script Encoder от Microsoft. Так, в последнем релизе (февраль 2003 года) указывается, что программа работает с операционными системами Windows 2000, Windows 98, Windows ME, Windows NT, Windows XP, а также с браузерами Internet Explorer 5 и выше серий. Возможно, из-за этой специфики Script Encoder и не получил большого распространения. Среди возможных альтернатив на рынке специализированных программ-кодировщиков можно назвать программу |