Как защитить сайт от копирования текста.

12
Zirkul
На сайте с 14.05.2008
Offline
155
1478

Здравствуйте. Собственно вопрос. Как можно защитить контент сайта от копирования правой кнопки мыши. И как это сделать? За ранее благодарен.

Изготовление сайтов любой сложности - визитки, лендинги, корпоративные, интернет-магазины и другие.
padre
На сайте с 25.02.2007
Offline
118
#1

Сделайте test.html с содержанием:

<head>

<script type="text/javascript" src="wedono.js"></script>

</head>

<body oncontextmenu="notmenu();>

а вот и текст. пробуем его скопировать ;)

</body>

далее нужно создать файл wedono.js и положить его в корень где размещен test.html

wedono.js содержит:

function preventSelection(element){

var preventSelection = false;

function addHandler(element, event, handler){

if (element.attachEvent)

element.attachEvent('on' + event, handler);

else

if (element.addEventListener)

element.addEventListener(event, handler, false);

}

function removeSelection(){

if (window.getSelection) { window.getSelection().removeAllRanges(); }

else if (document.selection && document.selection.clear)

document.selection.clear();

}

function killCtrlA(event){

var event = event || window.event;

var sender = event.target || event.srcElement;

if (sender.tagName.match(/INPUT|TEXTAREA/i))

return;

var key = event.keyCode || event.which;

if (event.ctrlKey && key == 'A'.charCodeAt(0))

{

removeSelection();

if (event.preventDefault)

event.preventDefault();

else

event.returnValue = false;

}

}

addHandler(element, 'mousemove', function(){

if(preventSelection)

removeSelection();

});

addHandler(element, 'mousedown', function(event){

var event = event || window.event;

var sender = event.target || event.srcElement;

preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);

});

addHandler(element, 'mouseup', function(){

if (preventSelection)

removeSelection();

preventSelection = false;

});

addHandler(element, 'keydown', killCtrlA);

addHandler(element, 'keyup', killCtrlA);

}

preventSelection(document);

function addHandler(object, event, handler, useCapture) {

if (object.addEventListener) {

object.addEventListener(event, handler, useCapture ? useCapture : false);

} else if (object.attachEvent) {

object.attachEvent('on' + event, handler);

} else alert("Add handler is not supported");

}

var ua = navigator.userAgent.toLowerCase();

var isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1);

var isGecko = (ua.indexOf("gecko") != -1);

if (isIE) addHandler (document, "keydown", hotSave);

else addHandler (document, "keypress", hotSave);

function hotSave(evt) {

evt = evt || window.event;

var key = evt.keyCode || evt.which;

key = String.fromCharCode(key).toLowerCase() == "s";

if (evt.ctrlKey && key) {

if(evt.preventDefault) evt.preventDefault();

evt.returnValue = false;

clientFunction();

window.focus();

return false;

}

}

function clientFunction() {

alert(

"Все материалы представлены на этой страницы исключительно для ознакомления.\n"+

"Цитирование материалов сайта возможно только с указанием активной гиперссылки на цитируемую страницу и с письменного разрешения администрации сайта."

);

}

function notmenu() { window.event.returnValue=false; }

document.ondragstart = test;

document.onselectstart = test;

document.oncontextmenu = test;

function test() {

return false

}

текст не копируется, правая кнопка не работает. Правда от "сохранить как" из меню это не спасает ;) Да и все мы знаем как пакетно наделать скринов и пакетно прогнать по FineReader для вытаскивания текста (это на крайняг) ;)

Zirkul
На сайте с 14.05.2008
Offline
155
#2

padre спасибо попробую щас. +

Zirkul добавил 27.08.2009 в 09:53

padre я создал файл .txt и сохранил его с названием test.html получилось так: написал в нем это:

<head>

<script type="text/javascript" src="wedono.js"></script>

</head>

<body oncontextmenu="notmenu();>

а вот и текст. пробуем его скопировать

</body>

Далее сознал файл .txt и сохранил его с названием wedono.js получилось так:

и написал в нем это:

function preventSelection(element){

var preventSelection = false;

function addHandler(element, event, handler){

if (element.attachEvent)

element.attachEvent('on' + event, handler);

else

if (element.addEventListener)

element.addEventListener(event, handler, false);

}

function removeSelection(){

if (window.getSelection) { window.getSelection().removeAllRanges(); }

else if (document.selection && document.selection.clear)

document.selection.clear();

}

function killCtrlA(event){

var event = event || window.event;

var sender = event.target || event.srcElement;

if (sender.tagName.match(/INPUT|TEXTAREA/i))

return;

var key = event.keyCode || event.which;

if (event.ctrlKey && key == 'A'.charCodeAt(0))

{

removeSelection();

if (event.preventDefault)

event.preventDefault();

else

event.returnValue = false;

}

}

addHandler(element, 'mousemove', function(){

if(preventSelection)

removeSelection();

});

addHandler(element, 'mousedown', function(event){

var event = event || window.event;

var sender = event.target || event.srcElement;

preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);

});

addHandler(element, 'mouseup', function(){

if (preventSelection)

removeSelection();

preventSelection = false;

});

addHandler(element, 'keydown', killCtrlA);

addHandler(element, 'keyup', killCtrlA);

}

preventSelection(document);

function addHandler(object, event, handler, useCapture) {

if (object.addEventListener) {

object.addEventListener(event, handler, useCapture ? useCapture : false);

} else if (object.attachEvent) {

object.attachEvent('on' + event, handler);

} else alert("Add handler is not supported");

}

var ua = navigator.userAgent.toLowerCase();

var isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1);

var isGecko = (ua.indexOf("gecko") != -1);

if (isIE) addHandler (document, "keydown", hotSave);

else addHandler (document, "keypress", hotSave);

function hotSave(evt) {

evt = evt || window.event;

var key = evt.keyCode || evt.which;

key = String.fromCharCode(key).toLowerCase() == "s";

if (evt.ctrlKey && key) {

if(evt.preventDefault) evt.preventDefault();

evt.returnValue = false;

clientFunction();

window.focus();

return false;

}

}

function clientFunction() {

alert(

"Все материалы представлены на этой страницы исключительно для ознакомления.\n"+

"Цитирование материалов сайта возможно только с указанием активной гиперссылки на цитируемую страницу и с письменного разрешения администрации сайта."

);

}

function notmenu() { window.event.returnValue=false; }

document.ondragstart = test;

document.onselectstart = test;

document.oncontextmenu = test;

function test() {

return false

}

Все равно текст копируется может я что то не так сделал? Сайт на движке joomla 1.5

Likh
На сайте с 07.04.2009
Offline
26
#3

Zirkul, только правовые способы.

никто не запретит любому посетилю инетрнета сохранить вашу страничку локально на свой компьютер и вытащить оттуда ваш текст.

О том, как защищать контент правовыми способами подробно писалось здесь

miniats
На сайте с 01.06.2009
Offline
29
#4

Весь выше указанный код это для защиты от "ламеров"

В доказательство скажу следующее

на вашей странице делаю:

1. ctrl+a

2. ctrl+с

3. затем создаю .txt документ в котором делаю

4. ctrl+v

5. а дальше техника, убираю все лишнее .

PS если хотите более-мение зашетить контент то посты нужно делать в картинках.

ибо распо тот же FineReader рабочий есть не у всех.

Рерайт1,5$ за 1K Б.П. Копирайт 3$ за 1K Б.П.
Maximalist
На сайте с 17.04.2007
Offline
202
#5
miniats:
если хотите более-мение зашетить контент то посты нужно делать в картинках.
ибо распо тот же FineReader рабочий есть не у всех.

улыбнуло 😂

- = тут что-то должно быть = -
aklimovv
На сайте с 18.01.2008
Offline
224
#6

Уже обсуждалось, если кто-то целенаправленно хочет скопировать страницу, то никак.

Alexhof
На сайте с 01.08.2008
Offline
134
#7

Вот вариант

<body oncopy="alert ('Контент данного сайта копировать запрещаю '); return false;">

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

Я лично так делаю. Контент моего сайта почти весь украден, но в выдаче я первый.

miniats
На сайте с 01.06.2009
Offline
29
#8
Alexhof:
Вот вариант
<body oncopy="alert ('Контент данного сайта копировать запрещаю '); return false;">

А лучшим вариантом будет, если у вас реально стоящие тексты, то заведите страницу в ЖЖ, и сразу после размещения анонсируйте её. Возможно вы будите считаться первоисточником.
Я лично так делаю. Контент моего сайта почти весь украден, но в выдаче я первый.

вопрос а в выдаче с ПС первоисточник ЖЖ или Ваш сайт ?

Alexhof
На сайте с 01.08.2008
Offline
134
#9

Конечно мой, "Яндекс" безвылазно сидит в ЖЖ, и мгновенно съест статью на вашем сайте.

Например сделайте вот так

Гидроизоляция спутниковых тарелок

Сегодня в наем мире важен уровень качества сигнала, но

не многие компании умеют чистить провода для лучшей

спутникопроводимости.

Т1
На сайте с 26.08.2009
Offline
81
#10

Гидроизоляция спутниковых тарелок

У меня на первом месте в Я: http://www.chishma.ru/tarelki/tarelki.html

Текст - уник.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий