Ars Longa, Vita Brevis

В помощь в борьбе с плагиатом - To help fight plagiarism

Today in the article "Countering Plagiarism RSS" Alex brought up a very hot topic of blogging copyright protection. And while content theft cannot be prevented, there are ways to help make it harder to steal.

Сегодня в статье "Противодействие плагиату RSS" Alex поднял очень актуальную тему защиты авторских прав блоггеров. И, хотя предотвратить кражу контента невозможно, существуют способы, помогающие усложнить процесс воровства.

Реализация двух трёх таких способов представлена в данном плагине.

The implementation of two or three such methods is presented in this plugin.

Первый способ — отложенная публикация фида. Рациональное зерно здесь следующее:

This plugin has recently been tested using multiple articles. The plugin worked for both articles. RSS feeds went out after those articles had been successfully indexed in major search engines.

Этот плагин недавно был протестирован на ComproGear.com с использованием статей о беге в компрессионных носках и компрессионных рукавах для ног. Плагин работал для обеих статей. RSS-каналы исчезли после того, как эти статьи были успешно проиндексированы в основных поисковых системах.

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

Автор данной методики предлагает вставлять определённый блок кода в файл functions.php текущей темы. Но, во-первых, это не дружественно по отношению к пользователю (в случае ошибки WordPress выплюнет fatal error), во-вторых, может быть автоматизировано, в-третьих, при смене темы файл придётся заново редактировать и в четвёртых — всё можно сделать проще :-) А в-пятых, всё гораздо сложнее, ибо WordPress умеет отвечать 304 Not Modified, что усложняет задачу.

Второй способ — добавление своих авторских прав (copyrights) в текст фида. Один из плагинов, который позволяет добавлять уведомление об авторских правах — это Simple Feed Copyright. Его недостатком (который, впрочем, можно рассматривать как достоинство) является "интерфейс в стиле UNIX" (полное отсутствие интерфейса). Кстати, добавление уведомления в фид можно сделать более простым методом, чем у автора SFC (всё дело в волшебных пузырьках фильтрах).

Третий способ заключается в замене русских букв аналогичными английскими:

Буквы русского алфавита заменяются на аналогичные по виду буквы английского алфавита. К примеру: о-o, а-a, Н-H, К-K и так далее. Сегодня поисковики без труда распознают такую подмену, и толку ворам от подобного контента нет, так как даже в индекс попасть у него мало шансов.

Как я уже говорил, плагин реализует все три метода, предоставляет интерфейс для изменения всех настроек и идёт с русским и английским переводом.

Версия 0.2: в плагин добавлена поддержка условных тэгов [is_feed] и [is_not_feed]. Первый тэг предназначен для показа текста исключительно в фиде, а второй — его противоположность — везде, кроме фида.

Например:

[-]
View Code Text
[is_feed]Этот текст будет виден только в фиде[/is_feed]

[is_not_feed]Этот текст не будет виден в фиде[/is_not_feed]

Этот текст не будет виден в фиде

Версия 0.3: плагин "подделывает" дату публикации последнего поста для фид-ридеров. Это сделано для того, чтобы WordPress не возвращал код 304 Not Modified, если ридер запрашивает фид с заголовками If-Modified-Since и/или If-None-Match, соответствующие предыдущему состоянию фида (до публикации последней статьи), так как WordPress "не знает" о том, что публикация статьи в фиде отложена.

Версия 1.0: добавлена поддержка замены русских букв эквивалентными английскими, введён новый синтаксис для тэгов (спасибо, Alex) и усовершенствован механизм подделки даты публикации последнего поста (теперь должно работать с FeedBurner'ом корректно).

О новом синтаксисе тэгов: идея здесь заключается в том, чтобы при деактивации плагина не пришлось редактировать руками все записи. Поэтому теперь тэги очень напоминают комментарии. В частности, пара <!--is_not_feed-->/<!--/is_not_feed--> при деактивированном плагине будет рассматриваться как комментарий и отображаться не будут. А текст между тэгами будет показан.

С тэгами <!--is_feed>/</is_feed--> всё аналогично: открывающий тэг служит началом HTML-комментария, а закрывающий — концом. Следовательно, текст внутри этих тэгов отображаться не будет.

Тем не менее, при деактивированном плагине новые тэги работать не будут (что, как мне кажется, очевидно): содержимое is_not_feed попадёт в фид, содержимое is_feed тоже попадёт, но в качестве комментария (и отображаться не будет).

[-]
View Code Text
<!--is_not_feed-->Этот текст не попадёт в фид<!--/is_not_feed-->
<!--is_feed>Этот текст попадёт в фид</is_feed-->

Этот текст не попадёт в фид

Скачать плагин Deferred RSS 1.0.

Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • БобрДобр
  • Мистер Вонг
  • Яндекс.Закладки
  • Текст 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Закладки Google
  • Писали
  • СМИ 2
  • Моё Место
  • Сто Закладок
  • Ваау!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Связанные записи

Комментарии к статье "Deferred RSS: отложенная публикация RSS-фидов" (47) »

  1. [Декабрь 5, 2008 23:18] AlexNote:

    Обновил ленту, ничего не пришло. Похоже работает у тебя=)
    А в плагине же можно совместить несколько вариантов защиты, если новый писать. Отложенная публикация и копирайт это две вещи, можно невидимый рисунок 1х1 со ссылкой на пост вставлять после первого абзаца, и заменять русские буквы английскими. Все в одном получится=) Тот же копирайт, кстати, можно вставлять в разные места - подвал, хедер, середина, после первого абзаца. Иногда воры отрезают последний абзац или регулярные выражения, а копирайт регулярный. Но можно вписать два-три текста копирайта, которые будут заменяться через раз.

    Кстати, плагином же можно сделать так, чтобы в фид вставлялось то, чего нет в посте? Копирайт вставляется по такому принципу. Можно большой копирайт, как у меня размещать в подвале фида, а короткие “Алекс - автор поста” со ссылкой на блог в произвольном месте, через спец-код, или, что лучше, после одного-двух абзацев.

    Ответить на данный комментарий

    #1
    • [Декабрь 5, 2008 23:43] Vladimir:

      Можно :-)

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

      Но так как проект иностранный, русские буквы, увы, не актуальны, и доделать это я смогу в свободное время (to do list уже большой).

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

      А разве фид сохраняет layout блога? Мне казалось, что туда только сам контент попадает…

      Похоже работает у тебя

      Не совсем: первый раз из-за опечатки в коде в фид попали все записи (черновики, личные и т.п.).

      А теперь самое простое не работает — копирайты. Сижу отлаживаю.

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

      Ответить на данный комментарий

      #2
  2. [Декабрь 5, 2008 23:57] Vladimir:

    Теперь всё работает. Ура!

    Ссылка для скачивания в статье.

    Ответить на данный комментарий

    #3
  3. [Декабрь 6, 2008 14:03] Vladimir:

    Появилась версия 0.2 (во сне приснилась!), описание в тексте.

    Кстати, плагином же можно сделать так, чтобы в фид вставлялось то, чего нет в посте?

    Теперь можно :-)

    Возможно, это не самое идеальное решение, но оно работает.

    Ответить на данный комментарий

    #4
  4. [Декабрь 6, 2008 18:47] AlexNote:

    У меня глючит. Вставляю в поле кода это

    [-]
    View Code HTML
    Copyright © <a href="http://www.alexnote.ru" title="AlexNote - авторский блог о музыке, продвижении сайтов и блогосфере">www.AlexNote.ru</a> 2008. Все права на материалы принадлежат автору блога <a href="http://www.alexnote.ru" title="AlexNote - авторский блог о музыке, продвижении сайтов и блогосфере" rel="nofollow">www.AlexNote.ru</a>, и охраняются законом об авторском праве. Некоммерческое использование материалов возможно только при установке активной гиперссылки на блог автора. Коммерческое использование материалов возможно только при письменном разрешении автора.

    Сохраняю. Перехожу в плагины, возвращаюсь - вижу стандартное заполнение поля, и стандартные значения задержки.

    Ответить на данный комментарий

    #5
  5. [Декабрь 6, 2008 19:41] AlexNote:

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

    Теги с показом/непоказом в фиде хорошая задумка=) Только надо сделать так, чтобы при удалении, плагин вычитил теги и содержимое. А то в двадцать постов вставишь такое дело, потом отключишь плагин, и замучаешься редактировать посты.

    Ответить на данный комментарий

    #7
  6. [Декабрь 6, 2008 19:54] Vladimir:

    обновил в фидбурнере, пока ничего не вижу в ленте

    Нужно Resync делать… Я вчера долго с FB разбирался, как оказалось, повторный пинг не является гарантией того, что FB побежит перечитывать фид.

    плагин вычитил теги и содержимое

    Нетривиальная задача… Например, такой uninstall побъет блок кода в примере наверху. При отображении всё решается просто: плагин подсветки кода защищает код от изменений, заменяя его некоторым хэшем (фильтр с самым низким приоритетом), а потом восстанавливая код по хэшу (фильтр с высоким приоритетом). При деинсталляции такой фокус, увы, не пройдёт.

    Пока писал, придумал идею: использовать не [is_feed]...[/is_feed], а <!--is_feed>...</is_feed--> и <!--is_not_feed-->...<!--/is_not_feed-->. Тогда при деактивации плагина код для фида будет комментарием, а код не для фида будет отображаться без изменений (закомментированы будут только тэги). Как такая идея?

    Ответить на данный комментарий

    #11
    • [Декабрь 6, 2008 20:53] AlexNote:

      Да, я ресинхом и делаю. Там написано, что не чаще чем раз в час надо делать ресинхронизацию. Третий час жду последний пост=)

      Я еще первый синтаксис не опробовал=) А второй вариант нужно вставлять в режиме редактора или html? Или в обоих случаях вывод будет верным?

      Какой код, по сути, не важно. Главное, чтобы работал и был валидным. А то эта функция в определенной степени развязывает руки, можно воров посылать=), и если однажды не сработает, то в блоге появятся интересные тексты=)

      А можно вставлять рисунки в <!-is_feed>…<!/is_feed->

      Ответить на данный комментарий

      #12
      • [Декабрь 6, 2008 21:49] Vladimir:

        Третий час жду последний пост

        Тут вот какая вещь: я написал статью про APC в 20:32 и два раза изменил её (задержку я поставил в 15 минут). После поста и изменений FeedBurner пришел, плагин ему отдал фид (без последнего поста). Потом через какое-то время FeedBurner пришёл опять (21:13). Статья уже “проявилась” в фиде (если запрос прогнать вручную, она видна в ответе MySQL), но WordPress (долгих лет жизни его разработчикам) говорит, что ничего не изменилось (выдаёт код 304 Not Modified).

        [-]
        View Code Text
        66.150.96.121 - - [06/Dec/2008:20:32:30 +0200] "GET /feed/atom/ HTTP/1.1" 200 21504 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"
        66.150.96.121 - - [06/Dec/2008:20:34:28 +0200] "GET /feed/atom/ HTTP/1.1" 200 21506 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"
        66.150.96.121 - - [06/Dec/2008:20:40:41 +0200] "GET /feed/atom/ HTTP/1.1" 200 21506 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"
        66.150.96.121 - - [06/Dec/2008:21:13:24 +0200] "GET /feed/atom/ HTTP/1.1" 304 - "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"

        Я так понимаю, что WP (по крайней мере, 2.7) смотрит на дату последнего поста, а так как она в прошлом, выдаёт 304. Сижу отлаживаю.

        А второй вариант нужно вставлять в режиме редактора или html?

        Второй вариант я еще не сделал, просто спросил совет :-)

        Но мне кажется, что с TinyMCE второй вариант не пройдёт

        Ответить на данный комментарий

        #13
        • [Декабрь 6, 2008 21:55] Vladimir:

          смотрит на дату последнего поста

          Так и есть:

          [+]
          View Code PHP

          Ответить на данный комментарий

          #14
  7. [Декабрь 6, 2008 22:30] Vladimir:

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

    Ответить на данный комментарий

    #15
  8. [Декабрь 6, 2008 22:34] AlexNote:

    Хмм.. Отключил плагин - выдает ошибку 500 при обращении к фидбурнеру. Отключил перенаправление - работает. Т.е. средствами браузера можно подписаться на фид, а с включением фидбурнера - нет. Даже в самом фидбурнере теперь не показывает ленту, вроде как, прочесть ее не смог.

    Ответить на данный комментарий

    #16
  9. [Декабрь 8, 2008 03:47] Vladimir:

    Alex, появилась 0.4b1. Она сыровата, но есть вкусности (бифштекс с кровью):

    • поддержка “безопасного” синтаксиса тэгов:
      [-]
      View Code Text
      <!--is_feed>Feed</is_feed-->
      <!--is_not_feed-->Not Feed<!--/is_not_feed-->

      Эти тэги не будут работать в TinyMCE (для него нужно будет плагин написать).

    • Русские буквы заменяются эквивалентными английскими.

    Версия сыровата, потому что я не успел её протестировать (пора спать, а завтра еще и стоматолог — кошмар!), так что если будет желание попробовать, вот ссылка:

    Deferred RSS 0.4b1.

    Ответить на данный комментарий

    #20
    • [Декабрь 8, 2008 10:55] AlexNote:

      Стомтатологов придумали те же люди, которые придумали ипотеку=)

      Скачал, поставил, активировал замену, ресинхронизировал фид. А как понять, что замена уже работает? Буквы же не отличишь=)

      То, что теги в визуальном работать не будут - не страшно. Перейти в HTML-режим не сложно. Надо будет блог-клиенты посмотреть, можно ли в них его использовать.

      Да, мне емейлы не приходят о новых комментариях.

      Ответить на данный комментарий

      #21
      • [Декабрь 8, 2008 16:49] Vladimir:

        Стомтатологов придумали те же люди, которые придумали ипотеку=)

        Я знал, я знал! И ведь опять меня анестезия не взяла

        А как понять, что замена уже работает?

        Открываешь фид в FireFox и пытаешься найти, например, слово “Ирина” (Ирина тут предложила рассказать о своих любимых фильмах).

        Да, мне емейлы не приходят о новых комментариях.

        Ммм, твой адрес (который на googlemail) не подписан. И Рамблеровский тоже… Ты точно подписывался? Если да, то я буду менять плагин.

        Ответить на данный комментарий

        #22
    • [Декабрь 8, 2008 11:18] AlexNote:
      [-]
      View Code HTML
      <!--is_feed>Copyright © <a href="http://www.alexnote.ru" title="AlexNote.ru - aвтopcкий блoг o мyзыкe, пpoдвижeнии caйтoв и блoгocфepe" rel="nofollow">AlexNote</a> 2008. Bce пpaвa нa мaтepиaлы пpинaдлeжaт aвтopy блoгa <a href="http://www.alexnote.ru" title="AlexNote.ru - aвтopcкий блoг o мyзыкe, пpoдвижeнии caйтoв и блoгocфepe" rel="nofollow">www.AlexNote.ru</a>, и oxpaняютcя зaкoнoм oб aвтopcкoм пpaвe. Heкoммepчecкoe иcпoльзoвaниe мaтepиaлoв вoзмoжнo тoлькo пpи ycтaнoвкe aктивнoй гипepccылки нa блoг aвтopa. Koммepчecкoe иcпoльзoвaниe мaтepиaлoв вoзмoжнo тoлькo пpи пиcьмeннoм paзpeшeнии aвтopa. <!/is_feed-->

      В коде фида это вижу после добавления в пост, и обновления фида. В самом фиде - нет.

      Ответить на данный комментарий

      #23
        • [Декабрь 8, 2008 17:50] AlexNote:

          Да, галочку поставил о подписке.

          Ирина не ищется=) Значит, замена произошла.

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

          Хотя то, что есть в исходнике тоже хорошо, можно легко доказать авторство.

          К замене еще “М” можно добавить. Здорово получилось=) Все, что могу еще придумать - произвольная замена символов в настройках. Скажем, опция в виде галочки: заменять т на m, 1 на один. Ну и т.д. Хотя это уже избыточный функционал.

          Надо выводить плагин на мировой уровень=) Если у буржуев тоже воруют, они могут английские заменять русскими.

          Ответить на данный комментарий

          #25
          • [Декабрь 8, 2008 18:01] Vladimir:

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

            До меня туго доходит… Если код есть в фиде, значит, он будет отображаться в фиде. Если его там нет, отображаться он не будет.

            По крайней мере, к меня работает именно так. Я упускаю что-то очевидное?

            feed-in-akregator.png

            #26
          • [Декабрь 8, 2008 18:07] Vladimir:

            На третьи сутки дошло. Попробуй скачать эту версию:

            Deferred RSS 0.4b2.

            Видимо, я что-то изменил в коде (или забыл сохранить перед созданием архива).

            #27
  10. [Декабрь 8, 2008 18:07] AlexNote:

    Вот смотри. В посте в режиме HTML вставлен следующий код (без код /код):

    [-]
    View Code HTML
    <!--is_feed>Copyright © тут остальной текст <!/is_feed-->

    И посмотри что у меня в ленте.

    Ответить на данный комментарий

    #28
  11. [Декабрь 8, 2008 23:55] tiaurus:

    Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /www/tiaurus/www/htdocs/wp-content/plugins/deferred-rss/deferred-rss.php on line 18

    Вот что у меня получилось. Ставил Deferred RSS 0.4b2.

    Ответить на данный комментарий

    #32
  12. [Декабрь 9, 2008 14:33] AlexNote:

    Небольшая опечатка:
    Replave Russian letters with English - Replace

    Ответить на данный комментарий

    #34
    • [Декабрь 10, 2008 07:06] Vladimir:

      Поправил, спасибо.

      Опережая WordPress 2.7 всего на несколько часов, появилась стабильная версия 1.0 плагина. Ссылка для скачивания и описание в статье.

      Ответить на данный комментарий

      #35
      • [Декабрь 10, 2008 20:36] AlexNote:

        Скачал, поставил. Сейчас готовлю обзорный пост.
        А можно доработать плагин с тем, чтоб он НЕ заменял буквы в анкорах ссылок и НЕ трогал код между <!--is_feed>/</is_feed-->?

        Ответить на данный комментарий

        #36
        • [Декабрь 10, 2008 21:31] Vladimir:

          Можно.

          В анкорах ссылок — это между тэгами <a></a>?

          Ответить на данный комментарий

          #37
          • [Декабрь 10, 2008 22:28] AlexNote:

            Ага=) Просто я тут нашел воров (кстати, благодаря плагину) у которых в текстах была сохранена перелинковка и ссылки шли на меня. Было бы лучше, если бы в этих ссылках анкоры не менялись - помогло бы со ссылочным ранжированием. Так как замена букв в ссылках либо нивелирует вес ссылки, либо сильно его уменьшает.

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

            Кстати, по поводу уведомлений на емейл=)

            ScreenShot7.png

            #38
          • [Декабрь 10, 2008 22:42] Vladimir:

            Ясно… Сношу плагин… Какую альтернативу посоветуешь?

            #39
  13. [Декабрь 11, 2008 09:53] AlexNote:

    Я сам пользуюсь тем же плагином, а других аналогов не знаю. Спроси у читателей, приходят ли им уведомления, может, я один такой? Мне ни с одного блога, где используются древовидные комменты, уведомления не идут.

    Ответить на данный комментарий

    #40
  14. [Декабрь 11, 2008 16:19] AlexNote:

    Ммм… Не пойму, как отправка происходит. Опубликовал в 12.00 до сих пор нет ни в фидбурнере, ни, естественно, в ридерах. Задержка 0 минут, время вордпресса UTF+3 (москва). Вчерашний тоже пришел часов через 10. У тебя правильно работает отсрочка публикации?

    Ответить на данный комментарий

    #41
  15. [Декабрь 11, 2008 21:01] AlexNote:

    Блин, такой облом - поисковики в кеше сохраняют версию с подмененными буквами. Это может привести к бану блога.

    Ответить на данный комментарий

    #44
  16. [Декабрь 14, 2008 19:17] Роман:

    А можно сделать версию с подменными словами а не буквами? Некоторое подобие синонимайзера

    Ответить на данный комментарий

    #45
  17. [Декабрь 18, 2008 09:32] Роман:

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

    Ответить на данный комментарий

    #47

RSS-фид комментариев к данной статье.
TrackBack URL: http://blog.sjinks.org.ua/wordpress/plugins/424-deferred-feed-publishing/trackback/

Оставить комментарий к записи "Deferred RSS: отложенная публикация RSS-фидов"

XHTML: можно использовать следующие тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя