Современные методы защиты направлены на то, чтобы злоумышленник потратил больше времени, сил, ресурсов на получение защищенной информации, чем та по сути стоит. В этом ключе можно поговорить о защите информации ваших сайтов.
Далее я подразумеваю, что сайт предназначен к открытому просмотру и индексированию поисковыми машинами, в следствии чего, защитить от копирования его принципиально невозможно. Но, тем не менее, усложнить жизнь копипастеров можно.
Картинки
Очень часто картинки являются отличным украшением статей, а то и самостоятельным контентом. Авторские фотографии, отчеты о различных мероприятиях, да и мало ли чего ещё. С картинками нам повезло, т.к. защитить их элементарно с помощью наложения «водяных знаков».
Тексты
1. Скрипт вам в помощь.
Большинство методов, затрудняющих копирование, основано на использовании скриптов, которые объявляют функции для обработки события выделения/копирования текста.
1 2 3 4 |
<body onSelectStart="return false" onCopy="alert( 'Содержание настоящего сайта является\n' + 'собственностью его создателей, копирование\n' + 'разрешено только с разрешения владельцев.'); return false"> |
В данном примере событие onSelectStart должно предотвращать сам процесс выделения текста, а onCopy — мешает переносу текста в буфер обмена и выводит некоторое заданное сообщение. Существуют также такие обработчики как:
oncontextmenu — onContextMenu=«return false» — в таком виде в IE запрещает контекстное меню, где помимо всего прочего есть команда — Скопировать.
ondrugstart — onDrugStart=«return false» — запретит перетаскивание на странице, чтобы нельзя было утащить текст в прямом и переносном смыслах :)
Все это работает при большом стечении обстоятельств (пользователь не запретил выполнение скриптов, а браузер поддерживает соответствующие события). При этом, почти всегда есть возможность просто открыть исходный html код веб-страницы, и скопировать нужный текст от туда.
Можно, опять же, сделать исходный код чрезвычайно плохо читаемым и не удобным как для просмотра, так и для выуживания из него чего бы там ни было. Но эта проблема уже решается программами, которые могут отформатировать html код. На каждый прием тут же находится контрприем.
Кое кто предлагает такие радикальные методы, как распаковка текста скриптом при формировании html документа (преобразование из какой то кодированной строки и выполнение document.write в нужном месте). Да, действительно, исходный текст будет отсутствовать, но при этом и поисковые машины его не прочитают, в следствии чего текст нельзя будет найти через поисковики, и от туда никто не придет к вам на сайт. При этом, умелый копипастер все равно вытащит текст, хоть с помощью того же firebug в FF.
2. О кешировании
Часто предлагают в дополнении к прочему запретить кеширование страниц. Подразумевается, что копипастер уже попробовал все известные ему способы скопировать текст из браузера, и это ему не удалось :). Тогда, по логике предлагающих, он обратится к кешу браузера и возьмет исходник страницы там.
Из PHP можно отправлять следующие заголовки:
1 2 |
header("Cache-Control: no-store"); header("Expires: " . date("r")) |
Либо добавить в секцию <head> шаблона страницы строку вида:
1 |
<meta http-equiv="Cache-Control" content="no-cache" /> |
Опять же нужно, чтобы браузер злоумышленника соблюдал все эти предписания.
3. Готовые решения
Есть готовые решения, комбинирующие перечисленные методы, выжимая из них максимум. Наиболее известное из них — http://www.protware.com. На сайте в разделе демонстрации выложена страница защищенная с помощью их ПО. Действительно, выковырять текст довольно трудно и не удобно, но можно. Я ни в коем случае не рекламирую данный продукт, это лишь хорошая демонстрация максимума из того, что можно сделать технически для защиты.
Что то много уже получилось, в отдельной статье расскажу об административных мерах.