Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
10 Января 2007 в 12:00

Как техническими способами защитить авторские права на сайт (контент, дизайн и т.д.)

0 7879

1. Введение

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

Веб-мастерам и владельцам веб-ресусов приходится самим находить способы защитить авторские права на сайт, и чаще всего прибегают к техническим, нежели юридическим способам. Дело в том, что единственная 100% защита странички от просмотра HTML кода – выключенный сервер, т.к. если страничка доступна хотя бы для одного из браузеров, то у посетителя всегда есть возможность сохранить код этой странички. Поэтому все технические способы защиты HTML кода условно можно поделить на 2 способа: шифрование HTML кода и другие способы (отключение правой кнопки мыши, запрет на сохранение картинок с помощью скриптов, приведение html кода в состояние тяжелое для восприятия и т.д.).

Программно-техническую защиту (подразумевается использование программы, предназначенной для защиты в сети прав и законных интересов авторов электронных публикаций, путем отображения публикаций способом, исключающим их копирование и/или иное несанкционированное размножение или другую модификацию) рассматривать не будем по следующей причине. Как я уже сказал, единственная 100% защита странички от просмотра HTML кода – выключенный сервер, и какими бы хитрыми методами защиты HTML кода вы не пользовались (в том числе и шифрование), возможны два варианта исхода событий:

  1. Пользователь окажется “чайником” и, увидев что его обычные действия (скопировать картинку, текст и т.д.) не приводят к желаемым результатам, бросит это занятие, то ваши авторские права не будут нарушены.
  2. Пользователь окажется “продвинутым”, и, повозившись какое-то время с вашим сайтом, он достанет нужную для него информацию. В этом случае ваши права будут нарушены.

Следует, так же учесть еще один момент – любые попытки защитить техническими способами авторские права на сайт приводят к тому, что:

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

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

Исходя из выше сказанного, существует и несколько способов защиты, они делятся на простые (стандартные) и сложные (шифрование).

2. Стандартные способы технической защиты авторских прав на сайт

1. Блокирование правой кнопки мыши

Самый классический и наиболее распространенный способ - это использование скрипта, который выдает предупреждающую надпись при нажатии правой кнопки мыши:

<script language="JavaScript1.2">
if (document.all) document.body.onmousedown=new Function("if (event.button==2event.button==3)alert('Предупреждающий текст')")
</script>

2. Запрещение выделения объекта мышью

В теге <BODY> прописывается oncontextmenu="return false".

3. Запрещение копирования

В теге <BODY> прописывается oncopy="return false".

4. Защита графической информации

4.1 Защита картинки (способ 1)

Создается «слоеная» картинка в таблице. Идея в том, чтобы разрешить посетителю страницы сохранять картинки, только вместо тех, что он видит, оставлять совершенно другие, например, прозрачные. Для изготовления такой картинки понадобится любой HTML-редактор, для не особых знатоков разметки гипертекста лучше всего воспользоваться Dreamweaver. Создаем таблицу с одной ячейкой, по размерам совпадающую с нашей картинкой, и вставляем последнюю в качестве фона таблицы (или ячейки). В эту таблицу вставляем точно такую же еще одну таблицу, а уже в последнюю - прозрачный gif-файл (имя картинки и имя прозрачного gif-файла следует сделать почти одинаковыми на вид). Если этот метод вас устраивает, а создавать таблицы с картинками вручную нет желания, вы можете воспользоваться специальной программой для создания слоев - например, Cool Page.

4.2 Защита картинки (способ 2)

Идея в том, что бы порезать картинку на кусочки. Картинка разрезается на множество сегментов, каждый из которых затем вставляется в таблицу. В этом случае тому, кто захочет эту картинку восстановить, придется сохранять каждый сегмент в виде отдельного файла и потом "сшить" в одном из графических редакторов. При большом числе фрагментов разбиения желание похитить картинку у кого-то может пропасть окончательно. При автоматизации такого способа можно воспользоваться функцией автоматической разрезки изображений, имеющейся в некоторых графических редакторах. В Ulead PhotoImpact можно разрезать картинку на нужное количество частей и сохранить результат в HTML. При этом генерируется таблица, которую можно экспортировать во Dreamweaver, настроить там ее внешний вид, после чего вставить полученный код в свою веб-страницу.

Необходимо обратить внимание на то, что от копирования картинок при помощи кнопки клавиатуры Print Screen описанные способы 4.1 и 4.2 не спасут, поэтому рекомендуется публиковать картинки с приемлемым качеством для комфортного просмотра изображения, но не приемлемым для их коммерческого использования.

5. Открытие защищаемой страницы в отдельном окошке

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

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

if(window.name!=null) {isOK2=window.name;} else {isOK2='nameFalse';}

Если имя окна не WinX, то направляем пользователя или на ложную страницу, или на страницу с предупреждением, или на исходную. Можно и просто автоматом закрыть окно без предупреждений.

Например:

if (isOK2!='WinX') { 
window.location.replace('mistake.htm'); // загружаем в окно другую страницу
// window.close(); // или закрываем окно
}

Таким образом, заблокируются любые возможности пользователя открыть вашу страницу в новом окне. Конечно, ссылки на Вашу страницу с других страниц или поисковиков будут попадать на страницу mistake.htm. Это надо всегда иметь в виду.

Допустим, пользователь все-таки очень хочет посмотреть код, и он разобрался, что для загрузки страницы mypage1.htm надо открыть ее в нормальном окне, но с именем WinX. Тогда он делает свою страничку, ставит в ней свой скрипт, аналогичный нашему, и открывает.

Как не дать ему сделать это?

Следует ввести в защищаемую страницу (в ее заголовок) скрипт, определяющий страницу, с которой пользователь запрашивает вашу.

Например:

if (window.document.referrer!=null) {isOK3=window.document.referrer;} 
else {isOK3='refFalse';}
href3 = 'http://www.site.com/page1.htm'; // адрес страницы с которой идет вызов
if (|isOK3!=href3) {
window.location.replace('mistake.htm'); // загружаем в окно другую страницу
// window.close(); // или закрываем окно
}

То есть, достаточно определить, является ли страница, с которой вызывается наша mypage1.htm, страницей, находящейся на нашем сервере, или нет. Тогда попытки ввода страницы в любое окно с правильным именем WinX, но не с той страницы, с которой следует, будут заканчиваться перенаправлениями пользователя на страницу mistake.htm.

Совсем хорошо, если у вас есть возможность использовать PHP-скрипт, в который можно передать IP-адрес посетителя страницы. Тогда можно просто блокировать дальнейшую выдачу любых страниц, если посетитель более трех-пяти раз попытался загрузить вашу страницу не тем способом, который ему разрешен. То есть реализовать нечто типа "черного списка". И для IP-адресов "черного списка" выдавать ошибку 404 - файл не найден. То же самое можно выдавать вместо файла mistake.htm. Психологически действует великолепно.

Подробнее об этом способе на http://1ps.ru/articles/doc/0201120956811/

6. Отключение кэширования страницы

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

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<TITLE>Photoalbums
<meta http-equiv="Content-Language" content="ru">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta name="Author" content="………">
<STYLE type=text/css>
...........
</BODY>
</HTML>

7. Вставлять html во flash

В этом случае, конечно код страницы будет доступен, но вот достать его обратно из flash представляет временную проблему, которая для обычного “чайника” может оказаться и не решаемой.

3. Техническая защита авторских прав на сайт шифрованием

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

1. Использование компилятора perl2exe

Самый простой способ защиты кода это использование компилятора perl2exe (Windows), который создаёт из кода обычный выполняемый файл. Для, пожалуй, одного из самых популярных в Рунете языка сценариев Perl, одним из вариантов сокрытия исходных текстов стала возможность компилирования исходных текстов в исполняемый формат PE-exe для win32, ELF для Linux. Такая утилита для компиляции, и называется Perl2Exe, предоставляется компанией сторонних разработчиков IndigoStar Software.

В этом случае самый элементарный способ (и чаще всего используемый) — зашифровать программу, поместить её в переменную, а в конце поставить расшифровщик. Но, несмотря на то, что авторы утилиты Perl2Exe не предоставляют ее исходных кодов, оказалось возможным найти инженерный пароль в автоматическом режиме, с помощью различного рода хакерских программ. Поэтому говорить о криптографической стойкости подобного шифрования бессмысленно, поскольку ключ к шифру находится рядом с самим шифром. (Что только увеличит размер вашей зашифрованной странички). Такое изменение программы легко обратимо.

2. Удаление синтаксических символов и добавление фрагментов

Самый большой интерес представляют необратимые изменения текста. Частично таковым является удаление всех переводов строк, комментариев, лишних скобок и пробелов из кода - в общем, всего «ненужного», что было там лишь для повышения читабельности. Это необратимо лишь частично, поскольку некоторые редакторы могут автоматически расставить переводы строк и табуляторы.

Можно вставлять в код бессмысленные куски, которые ничего не делают (чаще всего этот метод применяется в комбинации с удалением «ненужного»).

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

3. Шифрование с использованием source filters

В следующей статье описывается шифрование с использованием source filters.

В общем случае, у данного метода остается, как и у многих, пожалуй, методов шифрования, тот же недостаток, что и у Perl2Exe или схожей с ней утилит, а именно – наличие инженерного пароля.

4. Шифрование HTML кода

Последний и, пожалуй, самый простой способ шифрования для веб-мастеров сайтов.

Шифрование HTML кода с использованием сервиса http://www.ph4.ru/wm_html2js.ph4, который преобразует все нелатинские символы HTML кода (кроме точки, запятой, знака вопроса и двоеточия) в коды символов UNICODE.

Оригинал HTML кода:

<script language="JavaScript1.2">

if (document.all) document.body.onmousedown=new Function("if
(event.button==2||event.button==3)alert('Предупреждающий текст')")
</script>

В UNICODE выглядит так:


%3Cscript%20language%3D%22JavaScript1.2%22%3E%0D%0A%0D%0Aif%20%28documen
t.all%29%20document.body.onmousedown%3Dnew%20Function%28%22if%20%28event.butt
on%3D%3D2%7C%7Cevent.button%3D%3D3%29alert%28%27%u041F%u0440%u0435%u04
34%u0443%u043F%u0440%u0435%u0436%u0434%u0430%u044E%u0449%u0438%u0439%
20%u0442%u0435%u043A%u0441%u0442%27%29%22%29%0D%0A%0D%0A%3C/script%
3E

Там же сервис выдает окончательный код, который вставляется в вашу страничку:


<script>
enc =
"%3Cscript%20language%3D%22JavaScript1.2%22%3E%0D%0A%0D%0Aif%20%28docume
nt.all%29%20document.body.onmousedown%3Dnew%20Function%28%22if%20%28event.but
ton%3D%3D2%7C%7Cevent.button%3D%3D3%29alert%28%27%u041F%u0440%u0435%u0
434%u0443%u043F%u0440%u0435%u0436%u0434%u0430%u044E%u0449%u0438%u0439
%20%u0442%u0435%u043A%u0441%u0442%27%29%22%29%0D%0A%0D%0A%3C/script
%3E";
dec = unescape(enc);
document.write(dec);
</script>

PS. Если вся страница закодирована таким образом, она не будет работать, если в браузере пользователя отключен javascript.

4. Заключение

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

В этом случае 80-85% пользователей, столкнувшихся с вашей защитой, после пары провалов, бросят это безнадежное дело, и ваши авторские права будут защищены, при этом необходимо всегда отдавать себе отчет в том, что абсолютной защиты не существует.

(Голосов: 5, Рейтинг: 5)
0 комментариев
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.

Отправьте отзыв!