Блог Евгения Попова :: Программы :: DataLife Engine

Варианты запрета копирования текста на страницах


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

  1. Запрет выделения текста с помощью CSS
    body{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}

    Таким образом можно любому классу поставить запрет выделения текста в браузере.
  2. Запрет правой кнопки мыши
    <body onmousedown="mouseDown(this)" onmouseup="mouseUp(this)">

  3. Запрет копирования текста в буфер обмена
    <body oncopy="return false">

  4. Запрет выделения текста
    <body onselectstart="return false">

  5. Запрет использования правой кнопки мыши
    <body oncontextmenu="return false">

  6. Замена символов на латиницу с помощью JS
    <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 - меняет на букву З. Заменив таким набором русские буквы, практически весь текст (после копирования с вашего сайта) приходит в негодность.

  7. Запрет клавиатурных функций. Ctrl+A, Ctrl+U, Ctrl+C и отказ правой кнопки мыши
    function noselect() {return false;}
    document.onmousedown = noselect; 
    document.oncontextmenu = noselect; 
    document.oncopy = noselect; 
    function addHandler(event, handler){
     if (document.attachEvent) {
     document.attachEvent('on' + event, handler);
     }
     else if (document.addEventListener) {
     document.addEventListener(event, handler, false);
     }
     }
    function killSelection(){
     if (window.getSelection) {
     window.getSelection().removeAllRanges();
     }
     else if (document.selection && document.selection.clear) {
     document.selection.clear();
     }
     }
    function noSelectionEvent(event) {
     var event = event || window.event;
     var key = event.keyCode || event.which;
    if (event.ctrlKey && (key == 65 || key == 85)) {
     killSelection();
    if (event.preventDefault) { event.preventDefault(); }
     else { event.returnValue = false; }
     return false;
     }
     }
     addHandler('keydown', noSelectionEvent);
     addHandler('keyup', noSelectionEvent);
    
    
     //запрет показа сайта во фрейме
     if (window.parent.frames.length > 0) {    window.stop();    window.parent.location = "https://byroot.ru/104-varianty-zapreta-kopirovaniya-teksta-na-stranicah.html";  }
    <!--
    document.write("<a href='http://byroot.ru/'><\/a>")
    //-->

Перейти на сайт (скачивать файлы можно только на сайте)