1. Стандартные способы технической защиты авторских прав на сайт:
1. Блокирование правой кнопки мыши
Самый классический и наиболее распространенный способ - это использование скрипта, который выдает предупреждающую надпись при нажатии правой кнопки мыши:
<sc ript language="JavaScript1.2">
if (document.all) document.body.onm ousedown=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-файла следует сделать почти одинаковыми на вид). Если этот метод вас устраивает, а создавать таблицы с картинками вручную нет желания, вы можете воспользоваться специальной программой для создания слоев - например, [URL=http://www.coolpage.com/]Cool Page[/URL].
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. Отключение кэширования страницы
Данный код отключает кэширование на жестком диске в некоторых видах браузеров, что не позволяет пользователю найти на жестком диске сохраненную копию документа.
<HT ML>
<HEAD>
<MET A HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<TITLE>Photoalbums</TITLE>
<met a http-equiv="Content-Language" content="ru">
<MET A HTTP-EQUIV="Pragma" CONTENT="no-cache">
<met a name="Author" content="………">
<ST YLE type=text/css>
...........
</BODY>
</HTML>
7. Вставлять html во flash
В этом случае, конечно код страницы будет доступен, но вот достать его обратно из flash представляет временную проблему, которая для обычного “чайника” может оказаться и не решаемой.
2. Техническая защита авторских прав на сайт шифрованием
Шифрование – задача довольно непростая, полное описание которой займет не одну статью, поэтому ниже обозначены способы, предназначеныые для демонстрации основных принципов, и не являются готовыми к использованию решениями.
1. Использование компилятора perl2exe
Самый простой способ защиты кода это использование компилятора perl2exe (Windows), который создаёт из кода обычный выполняемый файл. Для, пожалуй, одного из самых популярных в Рунете языка сценариев Perl, одним из вариантов сокрытия исходных текстов стала возможность компилирования исходных текстов в исполняемый формат PE-exe для win32, ELF для Linux. Такая утилита для компиляции, и называется [URL=http://www.indigostar.com/p2xfaq.php]Perl2Exe[/URL], предоставляется компанией сторонних разработчиков IndigoStar Software.
В этом случае самый элементарный способ (и чаще всего используемый) — зашифровать программу, поместить её в переменную, а в конце поставить расшифровщик. Но, несмотря на то, что авторы утилиты Perl2Exe не предоставляют ее исходных кодов, оказалось возможным найти инженерный пароль в автоматическом режиме, с помощью различного рода хакерских программ. Поэтому говорить о криптографической стойкости подобного шифрования бессмысленно, поскольку ключ к шифру находится рядом с самим шифром. (Что только увеличит размер вашей зашифрованной странички). Такое изменение программы легко обратимо.
2. Удаление синтаксических символов и добавление фрагментов
Самый большой интерес представляют необратимые изменения текста. Частично таковым является удаление всех переводов строк, комментариев, лишних скобок и пробелов из кода - в общем, всего «ненужного», что было там лишь для повышения читабельности. Это необратимо лишь частично, поскольку некоторые редакторы могут автоматически расставить переводы строк и табуляторы.
Можно вставлять в код бессмысленные куски, которые ничего не делают (чаще всего этот метод применяется в комбинации с удалением «ненужного»).
В идеале эти бессмысленные куски должны быть разнообразными и похожими на окружающий их код, чтобы их было сложнее распознать.
3. Шифрование с использованием source filters
В следующей [URL=http://infocity.kiev.ua/hack/content/hack146.phtml?id=1872]статье[/URL] описывается шифрование с использованием source filters.
В общем случае, у данного метода остается, как и у многих, пожалуй, методов шифрования, тот же недостаток, что и у Perl2Exe или схожей с ней утилит, а именно – наличие инженерного пароля.
4. Шифрование HTML кода
Последний и, пожалуй, самый простой способ шифрования для веб-мастеров сайтов.
Шифрование HTML кода с использованием сервиса http://www.ph4.ru/wm_html2js.ph4, который преобразует все нелатинские символы HTML кода (кроме точки, запятой, знака вопроса и двоеточия) в коды символов UNICODE.
Оригинал HTML кода:
<sc ript language="JavaScript1.2">
if (document.all) document.body.onm ousedown=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
Там же сервис выдает окончательный код, который вставляется в вашу страничку:
<sc ript>
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 = une scape(enc);
document.write(dec);
</script>
PS. Если вся страница закодирована таким образом, она не будет работать, если в браузере пользователя отключен javascript.
3. Заключение
HTML код ни как не предрасположен к своей защите, поэтому его защита является довольно творческим процессом, комбинации как описанных выше способов, так и нахождения новых. При желании можно достичь неплохих по меркам специалистов результатов, которые будут даже на них действовать психологически великолепно.
В этом случае 80-85% пользователей, столкнувшихся с вашей защитой, после пары провалов, бросят это безнадежное дело, и ваши авторские права будут защищены, при этом необходимо всегда отдавать себе отчет в том, что абсолютной защиты не существует. |