Наполнение сайта контентом > Воровство контента > Защищенные тексты на сайте

Как защитить текст на сайте

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

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

Как защитить контент в окне браузера: CSS и скрипты для запрета от копирования

Простейший JavaScript, запрещающий копирование

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

Схожий способ – просто прописать в коде body

onbeforecopy="return false" oncontextmenu="return false" oncopy="return false" ondragstart="return false" onselect="return false" onselectstart="return false"

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

Очень неудобен тем, что запрещает использовать контекстное меню, открывающееся после клика правой кнопкой мыши. В результате честные посетители не могут перейти по ссылке, кликнув по ним правой кнопкой, чтобы открыть в новом окне, а также выделить интересный им текст, чтобы выбрать в контекстном меню пункт «Искать в Google».

Более элегантное решение – функция, добавляющая к скопированному тексту ссылку на источник.

Просто разместите в корне сайта файл copy.js (или любое другое название) с кодом:


function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var pagelink = "<br/>Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>";
var copytext = selection + pagelink;
var newdiv = document.createElement('div');
newdiv.style.position='absolute';
newdiv.style.left='-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function() {
body_element.removeChild(newdiv);
},0);
}
document.oncopy = addLink;

И просто поставьте на него ссылку в конце шаблона сайта

<script type="text/javascript" src="http://vash-domen.ru/copy.js"></script>

После этого в каждом скопированном участке текста будет располагаться ссылка на ваш web-ресурс. Разумеется, копипастер может удалить ссылку вручную при размещении контента, однако велика вероятность, что он просто не заметит ее, так как местоположение линка несколько смещено от основного контента.

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

Запрет выделения текста в CSS

Просто пропишите в файл CSS код


<style type="text/css">
/* Отключение возможности выделения в теге DIV */
.noselect {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
</style>

Преимущество этого метода в том, что злоумышленник не сможет скопировать текст, просто отключив JavaScript в браузере. Однако ни JavaScript, ни CSS не помогут вам, ведь копипастер может скопировать защищенный текст с сайта, просто посмотрев исходный код страницы, вызываемый сочетанием клавиш Ctrl+U, о котором сегодня знает каждый web-мастер.

Как защитить контент от парсинга граббером: парсинг и граббинг текстов

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

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

Задача web-мастера – затруднить работу парсера, а также пишущего его программиста, так как большинству копипастеров проще найти более простой для парсинга сайт, нежели мучиться со сложной задачей.

Рандомизация HTML-кода

Если основной контент содержится в коде <div id="bla-bla-bla"></div>, вы можете случайным образом добавить на страницу аналогичный контейнер, содержимое в котором меняется случайно (например, <div id="bla-bla-bla">arjiefjriofe</div>). В результате граббер начнет утягивать не основной текст, а случайно сгенерированный набор букв.

Также можно случайным образом менять оформление страницы, например, попеременно отображая то <div id="bla-bla-bla"></div>, то <div id="bla-bla"></div>, то <div id="bla"></div>. В этом случае парсер просто не сможет определить местонахождение основного текста.

Если выявили IP-адрес злоумышленника, можно не банить его, а отдавать ему контент, отличный от основного содержимого сайта. Например, можете заменить часть русских букв А и О английскими, а результате чего шанс попадания под фильтр ресурса копипастера заметно повысится.

Защита от личинга изображений

Нередко копипастеры не скачивают изображения на сервер, а просто копируют HTML код картинки и выводят ее на своем сайте. Простой способ запретить использование ваших картинок – прописать в файл .htaccess код:


RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?site\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

На изображение nohotlink.jpg можно нанести текст с указанием того, что изображение было украдено с вашего сайта.

Однако данный способ защитит только от личинга изображений, а не их копирования на сервер.

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


Меню сайта

Как защитить текст на сайте
Как защитить текст на сайте