Так уж получается, что старая пословица "Один с сошкой - семеро с ложкой" актуальна и в наше время. Только звучит немного иначе: "Один пишет - семеро копипастят", да и коэффициент 7 явно занижен. Я ничего не имею против, когда копируют статью и указывают прямую ссылку на сайт-первоисточник, это уважение к труду автора статьи и обычная практика в цивилизованном интернете. Но находятся безмозглые ублюдки, для которых размещение ссылки на сайт автора, у которого они скопипастили статью, является чем-то из области фантастики. В результате кто-то стрижет купоны за счет вашего труда, а вам от этого не перепадает ничего, даже новых посетителей. Активная защита, как правило, является пустой тратой времени (ну кроме, пожалуй, физического устранения, только УК РФ еще не отменили), письма админам и хостерам находят отклик и понимание лишь в единичных случаях. Полное запрещение копирования средствами скриптов и другие подобные меры во-первых бесполезны, а во-вторых будут только мешать нормальным посетителям пользоваться плодами вашего труда. Значит надо придумать какой-нибудь способ, который будет абсолютно прозрачным для обычных посетителей, но при этом статьи будут содержать информацию о том, откуда они были скопированы. Как ни странно, в этом могут помочь
каскадные таблицы стилей CSS. А именно стиль display со значением none. При его применении к любому html-элементу, элемент визуально полностью исчезает со страницы, но при этом фактически продолжает на ней находиться. И, что самое важное для нас, содержимое скрытых элементов будет попадать в буфер при копировании. Простой пример, возьмем какой-нибудь оригинальный текст и добавим в него наш собственный, заключив его в теги span со стилем display:none.
Вот что получится в исходном коде:
Коррупция должна быть не просто незаконной,
<span style="display:none;">при таких смешных суммах взяток</span>
она должна стать неприличной. (C) Дмитрий
<span style="display:none;">"Превед"</span> Медведев
На экране видим вполне нормальный текст:
Коррупция должна быть не просто незаконной, она должна стать неприличной. (C) Дмитрий Медведев
А теперь попробуйте скопировать этот текст и вставить в блокнот. Есть разница? :) На этом же принципе и будет основана защита ваших статей "водяными знаками", которые не отображаются при обычном просмотре страницы, но попадут в буфер при попытке копирования. Примеры таких меток:
<span style="display:none;">Эта статья скопирована с сайта www.domain.com</span>
или
<span style="display:none;">Подробности смотрите на сайте www.domain.com</span>
Разместите их в разных местах текста статьи, причем желательно, чтобы они подходили по смыслу к основному тексту, но при этом не бросались сразу в глаза. Как вариант, некоторые буквы в метке можно заменить на латинские с аналогичным написанием, в этом случае любой гуглояндекс поможет вам легко найти все сайты, на которых размещена ваша статья. Но не злоупотребляйте метками, так как поисковые системы очень не любят скрытый текст на web-страницах, да еще и с указанием какого-то сайта. Одной-двух меток на статью вполне достаточно. Похожий способ защиты своих аффтарских прав используют всякие литературные сайты, щедро разбавляя контент невидимыми тегами с мусорным текстом. Но это тема для отдельной статьи. Для совместимости с Оперой можно использовать такой код:
<span style="position:relative;"><span style="position:absolute;
width:1px; overflow:hidden;">скрытый текст</span></span>
Теперь еще один интересный прием защиты, но на этот раз от печати. Да-да, я не ошибся, содержимое html-страницы действительно можно защитить от распечатывания на принтере. И в этом нам тоже потребуется только CSS, а именно правило @media. Что это такое и для чего предназначено, лучше подробно вкурить в мануале на официальном сайте W3C, а вкратце скажу, что это правило создано для разделения стилей при отображении страницы на экране и ее печати. Разберем этот способ на таком примере:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Top Secret!</title>
<style type="text/css">
@media screen {
.for_print { display:none; }
}
@media print {
.for_print { display:block; }
.protected { display:none; }
}
</style>
</head>
<body>
<div class="protected">Это очень нужный и важный текст, составляющий
государственную тайну и не предназначенный для печати на принтере.
</div>
<div class="for_print">Служба безопасности предупреждает: это действие
может навредить вашему здоровью! :)
</div>
</body>
</html>
В таблице стилей определены два правила для отображения на экране и на принтере. Согласно этим правилам, элементы с классом
for_print не отображаются на экране, но появятся при печати, а элементы с классом
protected наоборот, видны только на экране. То есть при попытке распечатать какой-нибудь материал с вашего сайта, пользователь получит совершенно другой текст. Можно применить и более радикальные меры, например, при печати скрывать вообще все элементы страницы, тогда из принтера будет выходить чистый лист, но это уже перебор. Лучшим способом использования этого приема будет размещение информации о вашем сайте на всех страницах при их распечатке, на экране же эта информация отображаться не должна. Особенно если у вас не предусмотрено специальных версий статей для печати.
Естественно, как и любая другая защита, все перечисленные выше способы не могут дать стопроцентной гарантии. Но по крайней мере появляется шанс, что информация о вашем сайте, как о первоисточнике, не канет в Лету после десятого витка тупого копипаста с сайта на сайт. А на каждой распечатке информации с вашего сайта будет принудительно оставаться информация о нем. Удачи вам в борьбе с копипастом!