Защита текста и фото от копирования

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

BinSyst M
Аватара
BinSyst M
Возраст: 54
Репутация: 1
Сообщения: 13
Зарегистрирован: 23.09.2022
С нами: 1 год 6 месяцев

Сообщение #1 BinSyst » 03.06.2023, 21:08

Здравствуйте.
Подскажите - можно ли защитить контент на сайте от копирования? Может есть готовый модуль или готовые настройки?

dimon M
dimon M
Репутация: 1
Сообщения: 86
Зарегистрирован: 16.08.2017
С нами: 6 лет 7 месяцев
Откуда: Харьков

Сообщение #2 dimon » 04.06.2023, 05:02

BinSyst писал(а):Здравствуйте.
Подскажите - можно ли защитить контент на сайте от копирования? Может есть готовый модуль или готовые настройки?

Код: Выделить всё

<script> document.oncopy = function () { var bodyElement = document.body; var selection = getSelection(); var href = document.location.href; var copyright = " - Источник: <a href='"+ href +"'>" + href + "</a> Интернет-магазин vashsite.com.ua"; var text = selection + copyright; var divElement = document.createElement('div'); divElement.style.position = 'absolute'; divElement.style.left = '-99999px'; divElement.innerHTML = text; bodyElement.appendChild(divElement); selection.selectAllChildren(divElement); setTimeout(function() { bodyElement.removeChild(divElement); }, 0); }; </script>

Текст можете защитить вот таким способом. Замените в коде "vashsite.com.ua" на адрес вашего сайта и ставьте в блок head.

BinSyst M
Аватара
BinSyst M
Возраст: 54
Репутация: 1
Сообщения: 13
Зарегистрирован: 23.09.2022
С нами: 1 год 6 месяцев

Сообщение #3 BinSyst » 04.06.2023, 19:21

dimon, Вставил в блок head https://prnt.sc/D-iDU_ufy8S7
Не помогло. Может я не там вставил?

Aleks
Aleks
Репутация: 56
Сообщения: 382
Зарегистрирован: 24.05.2021
С нами: 2 года 10 месяцев

Сообщение #4 Aleks » 04.06.2023, 19:51

Спросите у Гугля как защитить от копирования текст.
Он вам выдаст минимум 10 способов. В том числе более сильный способ при помощи CSS.

dimon M
dimon M
Репутация: 1
Сообщения: 86
Зарегистрирован: 16.08.2017
С нами: 6 лет 7 месяцев
Откуда: Харьков

Сообщение #5 dimon » 05.06.2023, 04:17

BinSyst писал(а):dimon, Вставил в блок head https://prnt.sc/D-iDU_ufy8S7
Не помогло. Может я не там вставил?
Попробуйте скопировать текст с вашего сайта и вставить куда-нибудь.

BinSyst M
Аватара
BinSyst M
Возраст: 54
Репутация: 1
Сообщения: 13
Зарегистрирован: 23.09.2022
С нами: 1 год 6 месяцев

Сообщение #6 BinSyst » 05.06.2023, 05:17

dimon, теперь увидел. Спасибо за такую возможность тоже.
Но хотелось бы чтобы деактивировалась правая кнопка мыши как в WP

Aleks
Aleks
Репутация: 56
Сообщения: 382
Зарегистрирован: 24.05.2021
С нами: 2 года 10 месяцев

Сообщение #7 Aleks » 05.06.2023, 09:18

Тестировал сей скрипт. Текст то копируется. Суть защиты в том, что к скопированному тексту добавляется Источник, то есть имя сайта с которого скопирован текст.
Полный запрет копирования текста, даже не будет работать выделение текста, возможен следующим образом:
В theme.css внизу вставляем класс:
.noselect {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
В index.tpl после </head> перед body вставляем
<div class="noselect">
В самом низу перед </body> вставляем </div>
Все. Скопировать любой текст сайта невозможно, он просто не будет выделяться мышкой.
Но учтите, что 100% защита невозможна. Грамотный web-программер этот текст скопирует, но с достаточными танцами с бубном.
Защита фото.
Водяной знак, который установлен в OkayCMS есть всего лишь фиговый листок.
Да, если вы открыли картинку, кликнув по ней, то она скопируется с водяным знаком.
Если скопировать картинку без клика по ней, то она будет без водяного знака.
Перед </head> вставляем скрипт:
<script>
function disablecontext(e) {
var clickedEl = (e==null) ? event.srcElement.tagName : e.target.tagName;
if (clickedEl == "IMG") {
alert(errorMsg);
return false;
}
}
var errorMsg = "Вы не можете сохранять изображения с этого сайта.";
document.oncontextmenu = disablecontext;
</script>
После клика правой кнопкой на экран будет выводиться сообщение о запрете копирования. Но, знающий программер сможет просто отключить исполнение скриптов в браузере. Но и скрины никто не отменял.
Самый действенный способ - это наложение на оригинал картинки своего водяного знака. Водяной знак от OkayCMS удалить.

Serey733
Serey733

Head

Сообщение #8 Serey733 » 24.10.2023, 14:30

<script type="text/javascript">
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);
}
function clickIE4(){
if (event.button==2){
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
return false;
}
}
}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("return false")
preventSelection(document);
</script>
**********************

Вставляем перед закрывающимся head
он блокирует пр кн мыши везде + CTRL + выделение текста и тд

BinSyst M
Аватара
BinSyst M
Возраст: 54
Репутация: 1
Сообщения: 13
Зарегистрирован: 23.09.2022
С нами: 1 год 6 месяцев

Сообщение #9 BinSyst » 25.01.2024, 07:02

Serey733, Спасибо огромное. Давно не заходил, поэтому только сейчас увидел Ваш ответ.
Всё получилось как и хотел - работает!


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 37 гостей