WordPress. Разработка плагина для защиты сайта/блога от копирования

php Add comments

Как защитить контент сайта или блога от копирования и нелегальной публикации на других ресурсах в Интернете — этот вопрос возникает почти у всех блоггеров, авторов и прочих создателей контента. Эффективного и на 100% действенного способа защиты текста на веб-сайте от копирования я не нашел, но есть некоторый комплекс мер, который поможет снизить шансы копипаста и даже наоборот — получить от него выгоду.
Как раз для получения пользы от копирования контента я и написал плагин для WordPress, который назвал Chesser-Copyright. Структура плагина проста и кто захочет, тот сможет сам внести свои изменения в него. Кстати, разработать свой WordPress плагин — не так уж и сложно.

Некоторые аспекты и способы защиты текста от копирования обсуждались на нашем форуме:
Список форумов » Продвижение сайтов » SEO / SEM » Как бороться с копипастерами?
Этот топик на форуме помог мне сделать вывод о том, что борьба с копипастом смысла не имеет, зато можно попробовать извлечь из него выгоду.

Авторские права на представленный материал принадлежат администрации сайта http://chesser.ru, при копировании контента ссылка на источник обязательна.

Описание работы плагина Chesser Copyright v1.0

Посетители блога на движке WordPress, открыв страницу с постом(или page), будут видеть специально заданный админом текст с авторским соглашением и обратными ссылками на Ваш сайт. Причем, этот текст вставится один раз между двумя абзацами с заданным админом смещением относительно начала статьи.

После установки и активации плагина Chesser Copyright в админ зоне в меню «Параметры» появиться страница настройки этого плагина. Там появятся две опции:

  • «Offset» — кол-во символов, которое пропускается в посте блога перед тем, как показать текст из следующего параметра
  • «Copyright text» — тот текст, которые будет показываться, пропустив Offset символов.

Рекомендую в виде текста обратной ссылки вставлять именно url вашего сайта, а не его название. Таким образом, если воры автоматически очистят контент от всех ссылок, то хотя бы текстовый обратный адрес останется, и читатель ворованного контента сможет найти сайт с оригиналом.

Пример работы плагина Вы можете увидеть в этом блоге. Во все мои посты вставляется Copyright text следующего содержания:
<p><i>Авторские права на представленный материал принадлежат администрации сайта <a href=»http://chesser.ru/blog»>http://chesser.ru</a></i></p>

Если злодеи копипастеры даже и скопируют мои посты к себе, то такие обратные ссылки на мой блог возможно принесут мне пользу в виде повышения PR и тИЦ. Да они могут вырезать эти ссылки — но если нет? — тогда будет хорошо и уже я скажу им спасибо за бесплатное продвижение моего ресурса.

Если у Вас есть идеи и предложения по улучшению работы плагина и расширению его функциональности — обращайтесь! Думаю, это будет интересно всем.

Где скачать и как установить плагин Chesser Copyright

Плагин состоит из одного файла chesser-copyright.php, листинг которого можно увидеть ниже.
Скачать и установить плагин можно с официального сайта WordPress.org по адресу:
http://wordpress.org/extend/plugins/chesser-copyright/ Для установки плагина можно воспользоваться стандартным средствами вордпресса.
Также скопировать самую последнюю версию плагина можно с моего сайта по адресу:
http://chesser.ru/files/chesser-copyright.txt — на сервере поменять расширение на php

Код плагина WordPress Chesser Copyright v1.0

Листинг единственного файла плагина chesser-copyright.php:

<?php
/*
Plugin Name: Chesser Copyright
Plugin URI: http://chesser.ru/blog/wordpress-chesser-copyright-plugin-development/
Description: Insert any text string to a post when user visit the post page. Requires mbstring php extension.
Author: Chesser
Version: 1.0
Author URI: http://chesser.ru/blog/
*/
/*  Copyright 2009  Chesser  (email: chesser@inbox.ru)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

function chesser_copyright($content) {

  $offset = get_option('chesser_copyright_offset');
  $len = mb_strlen($content,"UTF-8");

  if ($len < $offset)
    return $content;

  if ($p_pos = mb_strpos(mb_strtolower($content, 'UTF-8'), '</p>', $offset, 'UTF-8')) {
    $p_pos += 4; // offset for </p> tag
    $content = mb_substr($content, 0, $p_pos, 'UTF-8').get_option('chesser_copyright_text').mb_substr($content, $p_pos, $len, 'UTF-8');
  }

  return $content;
}

function chesser_options_page() {
?>
<div class="wrap">
<h2>Chesser Copyright options</h2>
<?php
  if($_SERVER['REQUEST_METHOD'] == 'POST') {

    update_option('chesser_copyright_text', stripslashes($_POST['chesser']['copyright']['text']));
    update_option('chesser_copyright_offset', $_POST['chesser']['copyright']['offset']);

    echo '<div class="updated"><p>The changes have been saved.</p></div>';
  }
  $copyright['text']   = get_option('chesser_copyright_text');
  $copyright['offset'] = get_option('chesser_copyright_offset');
?>
<form method="post">
<table cellspacing="5">
  <tr>
    <td valign="top">Offset:</td>
    <td><input type="text" name="chesser[copyright][offset]" value="<?=$copyright['offset']?>" /></td>
  </tr>
  <tr>
    <td valign="top">Copyright text:</td>
    <td><textarea name="chesser[copyright][text]" rows="8" cols="70"><?=$copyright['text']?></textarea></td>
  </tr>
</table>
<p/>
<input type="submit" value="Save Changes" />
</form>
</div>
<?php
}

function chesser_add_menu() {
  add_options_page('Chesser', 'Chesser', 8, __FILE__, 'chesser_options_page');
}

add_filter('the_content', 'chesser_copyright');
add_action('admin_menu', 'chesser_add_menu');
?>
Метки: , , , , , ,


10 Responses to “WordPress. Разработка плагина для защиты сайта/блога от копирования”

  1. Lovingod Says:

    Как вариант, встречал нечто вроде Flash фиговины вставленной в страницу, в которую подавался текст. Так же вроде как кодируют текст используя base64, при этом делают перехватчики на выделение, Ctrl+A(слетает выделение), PrintScreen(текст изменяется). Естественно все это обходится расшифровкой страницы, было бы желание, но ведь можно все это прикрутить с AJAX’ом(запрашивать контент), а AJAX скрипт отдающий контент будет проверять откуда его запрашивают и т.д. и т.п.

  2. chesser Says:

    про ctrl+a и ctrl+c мы обсуждали на форуме по ссылке в начале поста. А AJAX не катит для SEO, поисковые системы должны иметь доступ к тексту.

  3. Lovingod Says:

    ну тут либо защищать текст от копирования, либо предоставить его анализу для search engines, ведь в конечном итоге он будет закеширован в поисковике.

  4. chesser Says:

    мой плагин, конечно, не защищает от копирования, но зато он способствует прославлению автора в сети Интернет, так как при копировании статьи на другой сайт, копируется и ссылка на оригинал. Зачастую копирующий не смотрит что там за ссылки внутри текста, а мой плагин вставляет в статью некий штамп. Два человека и я воспользовались — работает :)

  5. Pilat Says:

    Вроде с пом. JS можно запретить копирование (выделение или что-то там). А сам JS сделать необходимым для отображения страницы. HTML код же закрыть ionCube’ом:

    http://www.ioncube.com/html_encoder.php

    По-моему, достаточно надежно. По крайней мере, значительно усложнит жизнь копипастерам )

    Но вообще, согласен с тем, что борьба с копипастом смысла не имеет.

  6. chesser Says:

    Pilat, «HTML код же закрыть ionCube’ом» — и забыть про SEO

  7. Andrey Says:

    Честно говорят так и не понял что забивать в эти 2 поля. Может быть подскажете? Спасибо!

  8. chesser Says:

    попробуй:
    в Offset вставь 1000
    в Copyright text какой-нибудь текст и линк на свой же блог, например так:
    по материалам сайта <a href="http://chesser.ru/blog">http://chesser.ru</a&gt;

  9. Григорий Says:

    HTML код же закрыть ionCube’ом…
    Это шедевр! ))

    ionCube и НTML понятия вообще не связанные никак.
    ionCube — серверное приложение для шифрования РНР

  10. chesser Says:

    Григорий
    ionCube — это прежде всего бренд, или возможно совокупный набор алгоритмов шифрования/обфускации.
    Относительно криптования HTML — перейди по указанной ссылки и увидишь что ionCube и НTML связаны. Еще видел у других компаний подобные методы скрытия html данных, но мне кажется это уже лишнее

Leave a Reply

© 2001-2010 Chesser.ru All rights reserved.