Новый уникальный метод защиты текста от копирования

О воровстве текстов в интернете все наслышаны. Более трастовый и быстроиндексируемый сайт ворует текст у менее известного и раскрученного, в итоге: кто первый опубликовал, тот первоисточник. Доказать кому-либо что автор текста именно вы - довольно проблематично и хлопотно. Можно распечатать текст на бумаге, вложить в письмо, послать самому себе через дальнее зарубежье и опубликовать на сайте. Почтовый штамп будет веским доказательством в суде, что этот текст написали именно вы! Но отбросим шутки в сторону: как же быть?

Жаловаться в техническую поддержку поисковых систем? Но это не в их компетенции, кто будет выслушивать спорящие стороны, кто у кого украл текст? Это всего лишь поисковые системы, а не учреждения правосудия! Разумеется, и в Google и в Яндексе, прекрасно понимают положение вещей и придумывают всяческие алгоритмы по определению первоисточника и борьбе с плагиатом (достаточно упомянуть сервис "Оригинальные тексты" от Яндекса - доступно в панели вебмастера).

Ко всем старым кодам защиты от копирования все привыкли

Кроме того, есть масса так называемых защитных кодов против копирования текста с вашего сайта: в копируемый текст вставляется ссылка на источник или просто запрещается копирование текста. Например:

Запрещает копирование текста в буфер обмена

<body oncopy="return false">

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

<body onselectstart="return false">

Запрещает использование правой кнопки мыши

<body oncontextmenu="return false">

Но эта, так называемая "защита от дураков" не всегда работает. Ведь каждый школьник знает, что нажатием комбинации Ctlr+U или добавив к началу адреса:

view-source:

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

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

Получается, как не защищай текст от копирования - ничего не получится? Но не спешите!

Новый оригинальный метод защиты текста от воровства

Оригинальный выход из ситуации предложил на днях пользователь форума talk.pr-cy.ru - amigo. Разумеется, все существующие на сегодняшний момент скрипты защиты от копирования контента его не удовлетворили, ввиду малой эффективности (см. выше). Он предложил (языком оригинала):

Возможно ли написать скрипт, чтобы при копировании контента, буквы автоматически заменялись? В этом случае вебмастер даже не будет догадываться о защите, а на выходе получит текст с кракозябрыми для поисковиков. То есть заменять букву "а" кириллицей на букву "a" латиницы. Таких букв несколько, поэтому можно было бы заметно изменить копируемой у вас контент. Так и с уникальностью вашего контента проблем не будет (во всяком случае уменьшится), и вебмастера накажите орфографическими ошибками.

Хм, как все просто! Ничего не запрещаем копировать, а вместо этого подмешиваем вместо русских букв английские, отчего всякий текст остается читабельным для человека (или для печати), но превращается в непригодный бредотекст для поисковых систем. Разве не гениально?

При этом, автор  идеи просит помощи у программистов для реализации такого кода, хотя в итоге, ничего сложного в реализации нет, пару строк кода:

<script type="text/javascript">
function addTrans() {
 var d = document.getElementsByTagName('body')[0];
 var e = window.getSelection();
 var c = e + "";
 var f = "С с Е е Т О о р Р А а Н К Х х В М y З 3".split(/ +/g);
 var g = "C c E e T O o p P A a H K X x B M у 3 З".split(/ +/g);
 var b;
 for (var b = 0; b < f.length; b++) {
 c = c.split(f[b]).join(g[b])
 }
 var a = document.createElement('div');
 a.style.position = 'absolute';
 a.style.left = '-99999px';
 d.appendChild(a);
 a.innerHTML = c;
 e.selectAllChildren(a);
 window.setTimeout(function () {
 d.removeChild(a)
 }, 0)
}
document.oncopy = addTrans;
</script>

Тот же скрипт, если вы любите минимализм:

<script type="text/javascript">function addTrans(){var d=document.getElementsByTagName('body')[0];var e=window.getSelection();var c=e+"";var f="С с Е е Т О о р Р А а Н К Х х В М y З 3".split(/ +/g);var g="C c E e T O o p P A a H K X x B M у 3 З".split(/ +/g);var b;for(var b=0;b<f.length;b++){c=c.split(f[b]).join(g[b])}var a=document.createElement('div');a.style.position='absolute';a.style.left='-99999px';d.appendChild(a);a.innerHTML=c;e.selectAllChildren(a);window.setTimeout(function(){d.removeChild(a)},0)}document.oncopy=addTrans;</script>

Данный скрипт необходимо вставить перед закрывающим тегом  </body>

В переменные f (русские буквы) и g (написание латынью) можно дополнительно вставить другие символы для замены - при крайней необходимости, так как известный список английских букв похожих на русские выглядит следующим образом:

C c E e T O o p P A a H K X x B M у З

Маленькое пояснение к цифре 3 и букве З. Если в тексте встречается буква З - меняем ее на цифру 3. Если встречается цифра 3 - меняет на букву З. Заменив таким набором русские буквы, практически весь текст (после копирования с вашего сайта) приходит в негодность.

Скопируйте любой текст через такую защиту и проверьте на орфографические ошибки в любом сервисе. Или в обычном Microsoft Office. Результат будет следующим:

Оригинальная защита текста от копирования
Оригинальная защита текста от копирования: русские буквы заменяем английскими

P.S. Уникальность данного метода защиты от копирования текста состоит в том, что копипастер не догадывается о "троянском коне". Разумеется, если он использует инструменты проверки правописания (а они встроены в браузеры) или он придирчив к таким вещам и очень внимательный, то "подмену" он обнаружит. В любом случае, это доставит ему дополнительных хлопот по раскодированию текста, ведь в итоге он оказывается непригодным для индексирования (роботы поисковых систем воспринимают такой текст наряду с синонимизированными дорвеями).

Оцените материал:
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (35 голоса, рейтинг: 4,86 из 5)
Загрузка...

Вячеслав - типичный интернетчикВячеслав Скоблей (ака files) - типичный интернетчик. Скитаюсь интернетом, пишу на PHP, увлекаюсь созданием веб-сайтов на Wordpress, решаю многочисленные проблемы, которые до появления интернета не существовали...

Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой...

Наверняка у Вас есть вопросы, просьбы или пожелания. Не стесняйтесь спросить, я отвечаю всегда быстро...

45 комментарий

  1. Петр says:

    Спасибо. реализовал. Не знаете, кстати, есть ли какие-то функции, плагин, которые проверяют, что условно контент размещен на стороннем сайте в определенном режиме отслеживания?

    1. Вячеслав Скоблей says:

      Пожалуйста. Вопрос не понятен.

  2. Петр says:

    Спасибо большое за ценную разработку, очень полезно. Хотел бы у вас уточнить.
    1) Если мы исходим из того, что вор будет красть контент с web страницы, не отключая скрипты и после этого вставлять на сайт свой - это хорошо.
    Но, возможны случаи (не исключены),что вор может отключить скрипты в браузере и тогда копировать чистый текст.
    В этом случае - возможно ли как-то "защититься" функциями? Например (из серии размышлений) - если отключаются скрипты в браузере - то не показывается вообще контент сайта или еще что-нибудь....
    2) Также, хотелось бы, чтобы при копировании текста с "заменой букв" вставлялась в контент вора линк сайта (известный скрипт). Можно ли совместить?

    1. Вячеслав Скоблей says:

      1) Если скрипты выключены, то и задействовать какой-либо скрипт на JS не представляется возможным. По крайней мере, я не знаю обхода.
      2) Дополнить буфер обмена можно в переменной:

      var c = e + "";

      Пример:

      var c = e + " Этот текст был скопирован с сайта https://seo-zona.ru";
    2. Петр says:

      К примеру, кто-то украл контент с моего сайта, разместил вор его на своем сайте. А плагин мой (в автоматическом режим) отслеживает это, что мой контент всплыл на сайте вора. После этого идут в ход с моей стороны правовые требования к вору... Сейчас это реализовано в ручном режиме на adwego? к примеру. Но это надо каждый текст загружать со своего сайта и проверять уникальность, что не удобно....

      1. Вячеслав Скоблей says:

        Не знаю что ответить. Это затратно по ресурсах.

  3. Владислав says:

    Добрый день. А под Opencart 2.3 нет возможности сделать такой вариант, с изменением текста?

    1. Вячеслав Скоблей says:

      Скрипт работает на JS (JavaScript), соответственно, будет работать на всех движках и сайтах, где можно разместить JS. Просто вставьте его в свой шаблон.

      1. Владислав says:

        Уже пробовали, чет нет результата. В футер в конце файла

        между

        результата нет
        или может я как то не вижу что он работает?

        1. Вячеслав Скоблей says:

          Копируете кусок текста с сайта (где установлен скрипт), вставляете в WORD, где включена проверка орфографии. Если скрипт работает, WORD подсветит все слова с ошибками.

      2. Владислав says:

        Разобрались....спасибо

    2. Петр says:

      Заметил особенность. Поставил скрипт на сайт сайт. Все работает корректно. Но решил проверить - как яндекс увидит этот скопированный текст в абракадабре. Итак, скопировал текст с сайта (абзац), Вставил этот скопированный абзац в поисковой строке Яндекс. И я Яндекс все прекрасно идентифицировал и увидел страницу с которой был скопирован текст.
      Возник вопрос - получается, если вор поставит подобным образом к себе на сайт текст - он будет также считан Яндекс? Тогда какой смысл?

      1. Вячеслав Скоблей says:

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

        1. Петр says:

          1) Вы хотите сказать, что в поисковике Яндекса происходить переконвертация фраз абра-кадабры в оригинал кириллицы? И Именно поэтому он его находит?
          2) Но ранжирование все равно будет происходить или нет? Т.е. будет ли он ранжироваться с учетом автоматической перекодировки в оригинал или нет?

          С вашего позволения, могу ли я задать этот вопрос про ранжирование в Яндекс поддержку?

          1. Вячеслав Скоблей says:

            Я буду рад, если Вы уточните интересующие Вас вопросы в поддержке Яндекса и озвучите здесь ответ.

  4. worg says:

    Мне кажется такой код все равно негативно влияет на SEO. раньше легко раскручивал сайты, а тут на парочку новых повесил такой код, так уже 4 месяца прошло, еще ни одного посетителя. такого у меня еще никогда не было, чтобы спустя 4 месяца не было ни одного посетителя.

    1. Вячеслав Скоблей says:

      Спасибо, посмеялся. Еще снимите код и напишите о том, как трафик вырос :)

      1. ильдар says:

        Увы, на вордпрессе добавил в футер перед /body не работает.

        1. Вячеслав Скоблей says:

          Смотрите консоль. Проблема не в скрипте, а где-то на вашем сайте.

  5. Вы буквы у и y во всех скриптах местами перепутали, поправьте :-)

  6. Денис says:

    Здравствуйте!
    Предложенный Вами способ безусловно лучше защищает текст, чем вставка ссылки на источник. Но неужели так трудно будет сделать обратную транслитерацию? Обратный принцип же очень простой – текст проверяется, все латинские символы в словах с кириллицей меняются на кириллические, то же самое с цифрами.
    Только кому это усложнит жизнь? Единицам тех, кто ворует тексты? Так они без проблем обойдут эту защиту.
    А вот тех, кому необходимо скопировать пару слов для вставки их в поисковую строку для поиска информации по соответствующей теме, на несколько порядков больше. И каждый раз они будут поминать авторов этой идеи нехорошими словами.
    Правда, может я один такой, кого бесит вставка ссылки на источник при копировании ОДНОГ слова. И необходимость потом удалять эту ссылку.
    Например «начать Подробнее на ТАСС: http:// tass.ru/politika/5350187». Специально скопировал нейтральное слово. Они что, являются авторами этой последовательности символов?!
    Может быть Вы сделаете этот мир чуть-чуть лучше и распространите в качестве хорошего тона создание подобных неудобств только при копировании значительной части текста.
    Простите, это – крик души.
    Достали эти вставки ссылок; необходимость регистрации для того, чтобы только посмотреть нужна мне эта статья или нет; появление окон с предложением перезвонить в течение 27 секунд; рекламные объявления с вопросом почему я хочу их скрыть (разумеется они мешают просмотру контента); да и лента эта дурацкая в офисе (ну кто решил, что лучше побегать по нескольким менюшкам, а не создать ярлык, постоянно находящийся перед глазами?).

  7. Еще добавлю: при проверке отправки с другой почты на скопированный с сайта емейл пришло недоставленное письмо, а там видно, что до собаки адрес корректный, а после собаки, вместо yandex.ru получилось вот что: @xn--andex-dze.ru

  8. Здравствуйте! Код-то отличный, только проблема в том, что на электронную почту нельзя написать, а ведь люди копируют ее. Адрес почты чисто на латыни, без цифр. Или этот код еще "переводит" с латыни на русский?

    1. Вячеслав Скоблей says:

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

  9. Денис says:

    Будет ли работать такая защита от парсеров? В моём случае в основном именно они тянут статьи с картинками. Спасибо.

    1. Вячеслав Скоблей says:

      Данный метод работает против ручного копирования. Против парсеров можно использовать такой код в .htaccess:

      https://seo-zona.ru/novyj-unikalnyj-metod-zashhity-teksta-ot-kopirovaniya-2017-02-15.html#comment-9879

      В код вы можете добавить имена парсеров по User-Agent (взять в логах своего сайта).

  10. Александр says:

    Код не работает при использовании всплывающей подсказке "копировать" от яндекса.

  11. Евгений says:

    Добрый день. Спасибо за отличную подсказку, обязательно внедрю на сайте! Но для начала элементарный вопрос - правильно ли я понимаю, что этот скрипт меняет текст лишь ПОСЛЕ копирования? А на моем сайте он при этом остается прежним, то есть русская "а" остается русской "а", русская "З" остается буквой "З", а не тройкой и т. д.? То есть, как после внедрения этого кода поисковики будут видеть текст на моем сайте - как прежде, в виде "нормального" текста, без замен?

    И вопрос: а почему вы не внедрили этот метод у себя на seo-zona.ru? :-) Я скопировал часть вашего текста, вставил в сервис проверки правописания, он полностью "русский", без замен.

    1. Вячеслав Скоблей says:

      1. Да, скрипт "подменяет текст" лишь в процессе копирования (текст для поисковиков и для чтения остается прежним).
      2. Скрипт не актуален для моего сайта: пользователи не смогут копировать примеры кодов и цитаты! То есть, я рад что меня копируют и цитируют! На здоровье!

      1. Евгений says:

        Спасибо! Но получается, что этот способ помогает справиться лишь в случае, когда вор копирует текст прямо со страницы. Если же открыть код страницы через view-source: или Ctrl+U, при копировании символы не заменяются. А ведь копирование в основном происходит именно так, чтобы сохранить форматирование текста, подзаголовки и т. д. Знаете ли вы какой-нибудь способ, помогающий бороться с воровством с кода страницы?

        1. Вячеслав Скоблей says:

          Запретить нажатие правой кнопки мыши (пример дан в статье). А в целом можно задействовать целый арсенал:

          <div align="center"><noscript>
          <div style="position:fixed; top:0px; left:0px; z-index:3000; height:100%; width:100%; background-color:#FFFFFF">
          <div style="font-family: Trebuchet MS; font-size: 14px; background-color:#FFF000; padding: 10pt;">Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!</div></div>
          </noscript></div>
          <script type="text/javascript">
          function disableSelection(e){if(typeof e.onselectstart!="undefined")e.onselectstart=function(){return false};else if(typeof e.style.MozUserSelect!="undefined")e.style.MozUserSelect="none";else e.onmousedown=function(){return false};e.style.cursor="default"}window.onload=function(){disableSelection(document.body)};
          document.oncontextmenu=function(e){var t=e||window.event;var n=t.target||t.srcElement;if(n.nodeName!="A")return false};
          document.ondragstart=function(){return false};
          window.addEventListener("keydown",function(e){if(e.ctrlKey&&(e.which==65||e.which==66||e.which==67||e.which==70||e.which==73||e.which==80||e.which==83||e.which==85||e.which==86)){e.preventDefault()}});document.keypress=function(e){if(e.ctrlKey&&(e.which==65||e.which==66||e.which==70||e.which==67||e.which==73||e.which==80||e.which==83||e.which==85||e.which==86)){}return false};
          document.onkeydown=function(e){e=e||window.event;if(e.keyCode==123||e.keyCode==18){return false}};
          </script>

          Код, конечно, усложняет жизнь копипастеру, но если у него цель "забрать текст", то защитить Вы его никак не сможете.

          1. Евгений says:

            К сожалению, это так. У нас вот почти все статьи с сайта украли (несколько сотен) и тупо поместили на своем сайте, дословно, с фотками, логотипами и т. д. И сделать что-либо невозможно.

            1. Вячеслав Скоблей says:

              Если руками делают, то размещайте вышеуказанный скрипт. В .htaccess можете добавить блокировку распространенных ботов и парсеров:

              # BEGIN Bad Bot Blocker
              SetEnvIfNoCase User-Agent "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SeznamBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Xenu|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot
              Deny from env=bad_bot
              # END Bad Bot Blocker
              

              И последний вариант - писать владельцам с угрозами о нарушении авторских прав. Грамотное составленное письмо (с просьбой удалить материал или поставить прямую индексируемую ссылку на сайт-источник) в большинстве случаев срабатывает! Это намного дешевле, чем покупать ссылки :)

    2. Амиго says:

      Потому что идея моя) На сайте https://amigo.uz/blogs она внедрена и отлично работает

  12. says:

    Имхо, метод конечно очень даже не плох, но ведь есть расширения для браузеров отключающие яву,в итоге данная коняшка троянская работать ведь не будет. Ну, а так большое спасибо, скажем так подложить свинью копипастерам можно не плохо)

    1. Вячеслав Скоблей says:

      Можно открыть исходный код страницы и забрать текст, но смысл кода, как вы верно охарактеризовали - "подложить свинью" (копипастер же ничего не подозревает)!
      Расскажу реальный подслушанный случай (результат работы скрипта из статьи), когда вебмастеру написали в обратную связь, чтобы он уволил копирайтера, так как он пишет с большим числом орфографических ошибок :)

  13. freedore says:

    Ну а как дела с направление английский с заменой русскими буквами?

    1. Вячеслав Скоблей says:

      Поменяйте содержимое переменных, так:

       var f = "C c E e T O o p P A a H K X x B M у 3 З".split(/ +/g);
       var g = "С с Е е Т О о р Р А а Н К Х х В М y З 3".split(/ +/g);

      и получите аналог для англоязычного текста (английские буквы будут заменятся на русские)

      1. freedore says:

        Спасибо. Я как-то не правильно реализовывал эту идею ранее. Я правильно понимаю, что скрипт с заменой букв и скрипт с добавлением ссылки при копировании вместе на одной странице корректно не будут работать?

        1. Вячеслав Скоблей says:

          Конфликт скриптов надо смотреть в конкретном случае. Что и как подключается вами на сайте, я не знаю.

  14. says:

    Vadim не прав, абсолютно. Может просто не правильно понял суть скрипта. Тем не менее, скопированный текст остаётся несъедомным для поисковиков.

  15. Vadim says:

    Многие просто в текстовой файл копипастят десяток кусков страниц с разных сайтов, потом контент перемешивают и себе грузят. После ANSI ошибок не будет. Лучше бы скрипт букву на цифру менял, скажем букву O на ноль, букву З на тройку. Если даже одну букву выкидывать, кому надо, не очень помешает читать скопированное, и копи-пастерам не сразу в глаза бросается.

    1. Вячеслав Скоблей says:

      0 на О будет заметно.
      3 на З - добавим, спасибо.
      Почему после ANSI ошибок не будет - буква сама переконвертируется разве? Только если в специальных сервисах по исправлению опечаток. Но это еще понять надо, что текст перековыркан весь.

  16. Скрипт работает, проверено на практике. Оценка 5. Чем отблагодарить?

    1. Вячеслав Скоблей says:

      По просьбе трудящихся, в код добавлены некоторые изменения (поэтому, если вы писали комментарий раньше моего, обновите у себя код, он обновлен в статье). Отблагодарить можно на стр. https://seo-zona.ru/donate

Добавить комментарий для Вячеслав Скоблей Отменить ответ

Ваш адрес email не будет опубликован.