Рубрики
Инструкции

Покажем фигу пиратам

Скажи своё смелое «НЕТ!»
      Претензиям
            на монополию
                  мысли!

Нету своих идей? — смело чужие заимствуй!

Этот лозунг плагиаторов процветает в интернете. Бывает очень обидно видеть свои тексты без ссылки на оригинал. Это есть не что иное, как воровство, нарушение авторских прав. Об одном подходе можно прочитать в статье О лицензиях Creative Commons. Собственно говоря, это есть механизм внешнего регулирования права на ваш контент. Но не плохо бы научиться себя защищать не только этими нормами, но и технологически запрещать копирование контента с использованием буфера обмена.

Споры о том, нужно ли запрещать копирование контента или же не делать этого, продолжаются на протяжении десятилетий. В пользу и той, и другой точек зрения приводят убедительные аргументы, против которых находятся не менее убедительные контраргументы. Но этот спор останется вечным потому, как в каждом конкретном случае автору выгодно или то, или другое. Здесь мы не будем принимать участие в этой полемике, пусть каждый в каждом конкретном случае решит сам, разрешить ли копирование контента или нет. Здесь же показаны несколько способов защиты контента от копирование без использования плагинов. На 100% защиту от копирования обеспечить невозможно — то что попало на мой компьютер тем или иным способом, проще или легче может быть сохранено, модифицировано и присвоено без согласия автора. Всё, на самом деле, на совести пользователя, читателя, но некоторый дискомфорт организовать вполне возможно.

Способ №1. Java script для запрещения операций, связанных с копипастом

Найдите тег body в коде используемой вами темы. Обычно в WP он открывается в файле header.php. Добавьте к нему атрибут, который будет активировать скрипт, описываемый далее. Вот так:


Вставьте код скрипта в header.php до тега body:


document.ondragstart = noselect;
document.onselectstart = noselect;
document.oncontextmenu = noselect;
function noselect() {return false;}
document.oncontextmenu;
function catchControlKeys(event){
    var code=event.keyCode ? event.keyCode : event.which ? event.which : null;
    if (event.ctrlKey){
        if (code == 117) return false;
        if (code == 85) return false;
        if (code == 99) return false;
        if (code == 67) return false;
        if (code == 97) return false;
        if (code == 65) return false;
    }
}

Этот код запрещает (посмотрите в коде на количество конструкций if (code == ХХХ) return false;):

  1. выделять элементы на страницах блога;
  2. перетаскивать элементы;
  3. выводить контекстное меню, через которое можно скопировать контент;
  4. использовать сочетание Ctrl+A;
  5. использовать сочетание Ctrl+C;
  6. использовать сочетание Ctrl+U;

Единственной возможностью обойти такую защиту от копирования — отключить Java-скрипты в браузере, что на сегодняшний день слишком дерзко для читателя. Это станут делать не все, ведь сайт может утратить работоспособность при отключенных Java-скриптах. Но найдутся те, кто ради возможности копировать контент отключат Java-скрипты в браузере — специально для них можно приготовить ещё один блок в виде

Способ №2. Запрет копирования в CSS

Добавьте в файл style.css этот код:

-moz-user-select: -moz-none;
-o-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;

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

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

Способ №3. Подмена контента в буфере обмена

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

function add_content_text() {
    if (is_single()) { ?>
        
            function addLink() {
                if (
                    window.getSelection().containsNode(
                    document.getElementsByClassName('post')[0], true)) {
                    var body_element = document.getElementsByTagName('body')[0];
                    var selection;
                    selection = window.getSelection();
                    var pagelink = " . <a href=''>Ссылка на оригинал"; //Change this if you like
                    var new_text = pagelink;
                    var new_div = document.createElement('div');
                    new_div.style.left='-99999px';
                    new_div.style.position='absolute';
                    body_element.appendChild(new_div );
                    new_div.innerHTML = new_text ;
                    selection.selectAllChildren(new_div );
                    window.setTimeout(function() {
                        body_element.removeChild(new_div );
                    },0);
                }
            }
            document.oncopy = addLink;
        
    <?php }
}
 
add_action( 'wp_head', 'add_content_text');

Вот где-то так, для начала.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *