Blog. Just Blog

Защита контента сайта при помощи CSS

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Web-мастеру и не только | Автор: ManHunter
Так уж получается, что старая пословица "Один с сошкой - семеро с ложкой" актуальна и в наше время. Только звучит немного иначе: "Один пишет - семеро копипастят", да и коэффициент 7 явно занижен. Я ничего не имею против, когда копируют статью и указывают прямую ссылку на сайт-первоисточник, это уважение к труду автора статьи и обычная практика в цивилизованном интернете. Но находятся безмозглые ублюдки, для которых размещение ссылки на сайт автора, у которого они скопипастили статью, является чем-то из области фантастики. В результате кто-то стрижет купоны за счет вашего труда, а вам от этого не перепадает ничего, даже новых посетителей. Активная защита, как правило, является пустой тратой времени (ну кроме, пожалуй, физического устранения, только УК РФ еще не отменили), письма админам и хостерам находят отклик и понимание лишь в единичных случаях. Полное запрещение копирования средствами скриптов и другие подобные меры во-первых бесполезны, а во-вторых будут только мешать нормальным посетителям пользоваться плодами вашего труда. Значит надо придумать какой-нибудь способ, который будет абсолютно прозрачным для обычных посетителей, но при этом статьи будут содержать информацию о том, откуда они были скопированы. Как ни странно, в этом могут помочь каскадные таблицы стилей CSS. А именно стиль display со значением none. При его применении к любому html-элементу, элемент визуально полностью исчезает со страницы, но при этом фактически продолжает на ней находиться. И, что самое важное для нас, содержимое скрытых элементов будет попадать в буфер при копировании. Простой пример, возьмем какой-нибудь оригинальный текст и добавим в него наш собственный, заключив его в теги span со стилем display:none.

Вот что получится в исходном коде:
  1. Коррупция должна быть не просто незаконной,
  2. <span style="display:none;">при таких смешных суммах взяток</span>
  3. она должна стать неприличной. (CДмитрий
  4. <span style="display:none;">"Превед"</spanМедведев
На экране видим вполне нормальный текст:

Коррупция должна быть не просто незаконной, при таких смешных суммах взяток она должна стать неприличной. (C) Дмитрий "Превед" Медведев

А теперь попробуйте скопировать этот текст и вставить в блокнот. Есть разница? :) На этом же принципе и будет основана защита ваших статей "водяными знаками", которые не отображаются при обычном просмотре страницы, но попадут в буфер при попытке копирования. Примеры таких меток:
  1. <span style="display:none;">Эта статья скопирована с сайта www.manhunter.ru</span>
  2. или
  3. <span style="display:none;">Подробности смотрите на сайте www.manhunter.ru</span>
Разместите их в разных местах текста статьи, причем желательно, чтобы они подходили по смыслу к основному тексту, но при этом не бросались сразу в глаза. Как вариант, некоторые буквы в метке можно заменить на латинские с аналогичным написанием, в этом случае любой гуглояндекс поможет вам легко найти все сайты, на которых размещена ваша статья. Но не злоупотребляйте метками, так как поисковые системы очень не любят скрытый текст на web-страницах, да еще и с указанием какого-то сайта. Одной-двух меток на статью вполне достаточно. Похожий способ защиты своих аффтарских прав используют всякие литературные сайты, щедро разбавляя контент невидимыми тегами с мусорным текстом. Но это тема для отдельной статьи. Для совместимости с Оперой можно использовать такой код:
  1. <span style="position:relative;"><span style="position:absolute;
  2. width:1pxoverflow:hidden;">скрытый текст</span></span>
Теперь еще один интересный прием защиты, но на этот раз от печати. Да-да, я не ошибся, содержимое html-страницы действительно можно защитить от распечатывания на принтере. И в этом нам тоже потребуется только CSS, а именно правило @media. Что это такое и для чего предназначено, лучше подробно вкурить в мануале на официальном сайте W3C, а вкратце скажу, что это правило создано для разделения стилей при отображении страницы на экране и ее печати. Разберем этот способ на таком примере:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  2. <html>
  3. <head>
  4.   <title>Top Secret!</title>
  5.   <style type="text/css">
  6.   @media screen {
  7.     .for_print display:none; }
  8.   }
  9.   @media print {
  10.     .for_print display:block; }
  11.     .protected { display:none; }
  12.   }
  13.   </style>
  14. </head>
  15. <body>
  16.   <div class="protected">Это очень нужный и важный текстсоставляющий
  17.   государственную тайну и не предназначенный для печати на принтере.
  18.   </div>
  19.   <div class="for_print">Служба безопасности предупреждаетэто действие
  20.   может навредить вашему здоровью! :)
  21.   </div>
  22. </body>
  23. </html>
В таблице стилей определены два правила для отображения на экране и на принтере. Согласно этим правилам, элементы с классом for_print не отображаются на экране, но появятся при печати, а элементы с классом protected наоборот, видны только на экране. То есть при попытке распечатать какой-нибудь материал с вашего сайта, пользователь получит совершенно другой текст. Можно применить и более радикальные меры, например, при печати скрывать вообще все элементы страницы, тогда из принтера будет выходить чистый лист, но это уже перебор. Лучшим способом использования этого приема будет размещение информации о вашем сайте на всех страницах при их распечатке, на экране же эта информация отображаться не должна. Особенно если у вас не предусмотрено специальных версий статей для печати.

Естественно, как и любая другая защита, все перечисленные выше способы не могут дать стопроцентной гарантии. Но по крайней мере появляется шанс, что информация о вашем сайте, как о первоисточнике, не канет в Лету после десятого витка тупого копипаста с сайта на сайт. А на каждой распечатке информации с вашего сайта будет принудительно оставаться информация о нем. Удачи вам в борьбе с копипастом!

Поделиться ссылкой ВКонтакте
Просмотров: 9712 | Комментариев: 26

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Михаил (07.07.2012 в 17:31):
Спасибо за идеи. Даже не знал что такое возможно.. Скрытые ссылки на свою страничку - это стильно.
ManHunter (14.07.2011 в 14:57):
Пипец. Это чо, чтобы разместить У СЕБЯ какой-то текст, я должен набирать его У НИХ на сайте? По-моему перебор. И да, подобная херня прекрасно скриншотится и распознается FineReader'ом, раз уж на то пошло. При реальной необходимости получить копию материала не составит большого труда. К тому же ЭТО вообще не индексируется поисковиками. Про динамический контент можно вообще забыть, равно как и про поддержку CSS. Галимый plain-text, максимум с inline-стилями. То есть защита контента ради защиты контента, мертворожденный proof-of-concept и "неуловимый Джо", который нах никому не нужен.

Посмотрел на эту "защиту" изнутри. Грузится client.swf, после этого он подгружает файл данных с текстом. ActionScript внутри флешки не пошифрован и не обфусцирован, при наличии какой-нибудь четырехзначной валютной мотивации можно было бы его даже разобрать по косточкам. Так что сервис для параноиков. Не хочешь чтобы копировали - не выкладывай в сеть. Точка.
nand (14.07.2011 в 14:45):
А вот что-то новенькое... наткнулся на сайт http://nocopypaste.com обещают защищать текстовый контент и отдаваться ПС. У кого какие мнения на сей счет? p.s. Зарегистрировался там.. вроде все красиво, текст отдается на флеше но флэш зашифрован и разрабы божатся что текста в флеше нет... какой-то у них там технология. А ну и бесплатно это все :)
ManHunter (31.05.2011 в 12:15):
Так и контент пиздит только всякая школота :) Серьезные люди или сами пишут, или заказывают уникальный контент за денежку. А в остальном я полностью согласен, все, что показывается в браузере, так или иначе может быть скопировано. Но тут задача стоит не в том, чтобы нельзя было скопировать, а в том, чтобы при копировании оставались данные первоисточника.
Владислав (31.05.2011 в 12:13):
ManHunter, это и не защита вообще то))) Это может написать только школьник)
В таком случаее будет работать или джава или кьювери.
Isaev (09.03.2011 в 00:05):
:) не то чтобы хреново... Просто привычка, разобрался с одним, читаешь дальше.
ManHunter (08.03.2011 в 09:13):
Isaev, опять хреново читал :) Решение для оперы тоже написано.
Isaev (07.03.2011 в 15:36):
"А теперь попробуйте скопировать этот текст и вставить в блокнот. Есть разница?"
А в чём разница? У меня разницы нет вообще никакой (Opera) копируется просто текст, как мы его и видим... Или это уже не актуально?
Мариша (09.09.2010 в 15:49):
спасибо, но я защищаю особо ценный контент через депонирование - как бумажное в РНБ так и электронное в deponate.ru Другое дело что для не очень ценного контента лучше использовать любую возможную защиту
Наталья (14.08.2010 в 19:03):
Спасибо, очень интересная мысль... поэксперементирую:))
semenov (04.04.2010 в 22:37):
sharovatov, значит скрытый текст надо внедрять красиво
sharovatov (15.02.2010 в 23:48):
Интересное решение, однако, рождающее проблему с SEO. Ведь весь "скрытый" с помощью CSS текст будет отлично индексироваться поисковыми движками, что может привести к непонятным результатам :)
ManHunter (06.01.2010 в 18:38):
AtumnUnter, Так не сделать, особенно если копировать текст через блокнотик, который не поддерживает разметку.
AtumnUnter (06.01.2010 в 18:33):
Наиболее грамотное и удобное из всего что я читал по этой теме - есть еще сервис tynt но там через js подобное реализуется и весьма криво на бесплатном акке. А вот подскажите как сделать так чтобы при копировании текста он так и оставался невидимым у на сайте у вора? Идея такова что если у себя на сайте я проставлю скрытые вышеописанным способом кликабельные ссылки и вор дернет контент через copy/paste то скопирует и ссылки за что получит бан от поисковиков.Можно это как то реализовать?
Dux (11.09.2009 в 15:33):
Отличная статья, главное что подала несколько идей, а до функционала доработается.
p.s. какие же завистливые прыщи, афтор встретишь, не забудь дать пизды!
ManHunter (01.09.2009 в 17:11):
Александр, у тебя не возникало мысли, что у некоторых на компьютерах может вообще не быть говна типа MS Word? И способ добавления скрытого текста не "уже есть", а есть рабочий кроссбраузерный способ у меня и какой-то способ у тебя. А за рекламу своего говносайта - в бан.
Александр (01.09.2009 в 17:05):
уже есть способ автоматического добавления невидимого копирайта в текст перед публикацией [спам удален]
ManHunter (28.07.2009 в 12:34):
В камментах выложено решение и для оперы
wertik (28.07.2009 в 12:31):
В Opera нормально копируется, а в IE с добавкой.
ManHunter (26.06.2009 в 16:49):
Ну так головой тоже надо думать, когда защиту ставишь.
MaxIkar (26.06.2009 в 16:43):
ManHunter, я имею в виду, что копипастеры, которые постят статьи с указанием первоисточника, также запостят текст с этими скрытыми словами. Но разместят ссылку на первоисточник. А если скрытые слова будут искажать смысл текста, как в примере, то могут испортить репутацию сайту-первоисточнику.
ManHunter (26.06.2009 в 15:52):
Nutscracker, зато спокойно копирует конструкции типа

<span style="position:relative;"><span style="position:absolute; width:1px; overflow:hidden;">скрытый текст</span></span>
Nutscracker (26.06.2009 в 14:23):
Кстати, Opera не копирует скрытое через display: none.
ManHunter (26.06.2009 в 13:01):
MaxIkar, прочитал два разА, но твою мысль так и не осилил. Цитата: "Разместите их в разных местах текста статьи, причем желательно, чтобы они подходили по смыслу к основному тексту, но при этом не бросались сразу в глаза."
MaxIkar (26.06.2009 в 12:58):
Но есть и минус: те, кто копипастят с указанием ссылок на первоисточник, но с помощью Ctrl-C/Ctrl-V лоханутся, а в придачу могут еще и сайту-источнику репутацию подпортить (в случае если невидимый текст искажает смысл)
SAY (26.06.2009 в 11:04):
Спасибо за статью. Читаю твои статьи как энциклопедию!!!

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0039 сек.) / Память: 4.5 Mb
Наверх