Защита от ручного копирования контента

Код, запрещающий ручное копирование контента со страниц блога.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

Найдите тег body в коде используемой вами темы. Обычно он открывается в файле 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;
    }
}

Этот код запрещает:

  • выделять элементы на страницах блога
  • перетаскивать элементы
  • выводить контекстное меню, через которое можно скопировать контент
  • использовать сочетание Ctrl+A
  • использовать сочетание Ctrl+C
  • использовать сочетание Ctrl+U

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

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

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

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

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

Кстати, можно применить и другую хитрость: не запрещать копирование, но вместо скопированного контента подсунуть копипастеру какое-нибудь сообщение с ссылкой на оригинал. Для этого добавьте в файл 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 target="_blank" rel="nofollow" href="" target="_blank" rel="nofollow"  target="_blank" rel="nofollow"  >Ссылка на оригинал</a>"; //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');

Вместо скопированного контента копипастеру останется довольствоваться только ссылкой на оригинал.

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

×
WordPress:
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙