Компьютерная документация и статьи о Windows. Оптимизация Windows.

Поиск

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

  Навигация

    Главная
    Темы новостей
    Топ 10
    Архив новостей
    Рассылка новостей
    Каталог файлов
    Карта сайта
    Каталог ссылок
    Добавить статью
   Личный кабинет
    Пользователи
    Поиск
    Написать нам
    Тест скорости
    Конструктор
    Интересные книги
    Форум
    Это интересно
    RSS канал


  Наши темы
Windows 7
Windows Vista
Windows XP
Настройка Windows
Реестр Windows
Восстановление системы
MS-DOS
BIOS
Интернет
Microsoft Office
Сетевые настройки
Обработка видео
Вебмастеру
Разное о Windows
Обзор софта

  Рекомендуем

INAttack.RU :: Архив документации для хакера

СЕТЕВАЯ ПЕРЕГРУЗКА

Бесплатный каталог драйверов и
прошивок


  Подписка на рассылку
Ваш E-mail:

Тип подписки:

Формат подписки:


Реклама в интернет:::Все Кулички

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

Разместил 27/11/2007 от Vivaldis

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

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

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

или:
<META HTTP-EQUIV="no-cache">
или:
<META HTTP-EQUIV=Cache-Control content=no-cache>

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

<span oncontextmenu="return false;" ondragstart="return false";><img src="picture.jpg" galleryimg="no"></span>

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

<script language="Javascript1.2">
<!--
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
//-->
</script>
Но не всегда есть необходимость уведомлять пользователя о запрете на копирование, достаточно просто ограничить эту функцию. Один из способов — внести в тэг <body> специальное сообщение:

<body oncontextmenu="notmenu();">

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

<SCRIPT LANGUAGE="JavaScript1.1">
function notmenu() { window.event.returnValue=false; }
</SCRIPT>

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

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

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

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

<BUTTON onclick=´window.showModalDialog("page.html")´>Показать</BUTTON>
Страницу в таком окне нельзя ни скопировать, ни сохранить — но опять же, достаточно в блокноте или через функцию браузера Вид > Просмотр HTML-кода посмотреть код кнопки, чтобы определить адрес страницы и затем открыть ее в новом окне браузера.

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

<SCRIPT Language = "JavaScript">
mystring = "Вставьте текст"
document.write (escape(mystring));
</SCRIPT>

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

%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, или специально подготовленные для этой операции с помощью тэгов:

<SCRIPT language="JScript">
<!--//
//**Start Encode**
//А здесь html-код страницы
//-->
</SCRIPT>

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

<HTML><HEAD>
<SCRIPT language="JScript.Encode">
//**Start Encode**3%74%72%69%6E%67%2E%66%72%6F%6D%43%68
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>

Существуют определенные требования к браузерам и операционным системам, с которыми работает 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)


|
 
  Логин
Логин

Пароль

Не зарегистрировались? Вы можете сделать это, нажав здесь. Когда Вы зарегистрируетесь, Вы получите полный доступ ко всем разделам сайта.

  Связанные ссылки
· Больше про Вебмастеру
· Новость от Vivaldis


Самая читаемая статья: Вебмастеру:
Коды ошибки http веб-сервера


  Рейтинг статьи
Средняя оценка: 4.8
Ответов: 5


Пожалуйста, проголосуйте за эту статью:

Отлично
Очень хорошо
Хорошо
Нормально
Плохо



  опции

 Напечатать текущую страницу  Напечатать текущую страницу

 Отправить статью другу  Отправить статью другу


Яндекс цитирования Rambler's Top100 Рассылка 'Собрание документации по Windows , программное обеспечение' Content.Mail.Ru Maillist.ru: Компьютерная документация по настройке Windows
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
The Russian localization - project Rus-PhpNuke.com
Открытие страницы: 0.439 секунды и 20 запросов к базе данных