Захист тексту від копіювання: метод транслітерації

Захист оригінальності тексту є дуже важливим для деяких сайтів, тому вони використовують різноманітні методи та лайфхаки, щоб заборонити саму можливість копіювання тексту на єкрані. Такий підхід хоч здебільного і працює, але є дуже агресивним і не зовсім єтичним по відношенню до звичайного користувача (він не може скопіювати текст, коли це дійсно йому потрібно: адресу, телефон чи цитату; відключається контекстне меню в браузері і т.д.).

Найбільш поширені методи захисту від копіювання

Заборона копіювання тексту в буфер обміну

<body oncopy="return false">

Заборона виділення тексту

<body onselectstart="return false">

Заборона використання правої кнопки миші

<body oncontextmenu="return false">

також заборона гарячих клавіш типу Ctrl+C та Ctrl+V та інші методи, які в тій чи інакшій ситуації працюють, але спонукають недоброзичливих користувачів вашого сайту шукати шляхи обійти заборону.

Метод транслітерації

Маловідомий, але цікавий метод спотворення оригінальності скопійованого тексту – метод транслітерації! Він нічого не забороняє: користувач який копіює текст з сайту жодним чином не відчуває дискомфорту і ні про що не здогадується 🙂

Метод транслітерації – це перетворення символів однієї системи письма в іншу на основі фонетичної схожості. Іншими словами, якщо деякі кириличні літери замінити їх латинськими аналогами, то візуально користувач нічого не помітить, а от пошукова система, яка індексує такий текст, безумовно буде не у захваті (вона хоч і зможе його прочитати, та навряд чи буде його нормально ранжувати). Транслітерація відбувається непомітно у браузері користувача, коли той копіює текст з сторінки.

Реалізація на JavaScript

Цей скрипт необхідно вставити на всі сторінки вашого сайту, де планується реалізувати захист від копіювання (перед тегом, що закриває </body>):

<script>function badText() {
var selection = window.getSelection().toString();
var fromChars = "С с Е е Т О о р Р А а Н К Х х В М y і І З 3".split(/ +/g);
var toChars = "C c E e T O o p P A a H K X x B M у i I 3 З".split(/ +/g);

for (var i = 0; i < fromChars.length; i++) {
selection = selection.split(fromChars[i]).join(toChars[i]);
}

var tempElement = document.createElement('div');
tempElement.style.position = 'absolute';
tempElement.style.left = '-99999px';
document.body.appendChild(tempElement);
tempElement.innerHTML = selection;

var range = document.createRange();
range.selectNodeContents(tempElement);
var selectionObj = window.getSelection();
selectionObj.removeAllRanges();
selectionObj.addRange(range);

setTimeout(function() {
document.body.removeChild(tempElement);
}, 0);

}
document.oncopy = badText;</script>

Логіка роботи скрипта: створюється тимчасовий невидимий div у який переноситься виділений на сторінці текст; у тексті кириличні літери заміщуються латинськими аналогами; перероблений текст копіюється в буфер обміну замість оригінального скопійованого тексту.

Як це працює на практиці?

Користувач на вашому сайті мишкою виділяє необхідний йому текст на сторінці і копіює його в буфер обміну для подальшої обробки. У буфері обміну у нього буде спотворений транслітераціює текст. Візуально він нічого не помітить, але будь-яка перевірка орфографії такого тексту виявить усі недоліки.

Приклад спотвореного через буфер обміну тексту

Приклад спотвореного через буфер обміну тексту

Важливо! Використовуйте такий захист (спотвореного транслітераціює тексту) тільки в тому випадку, якщо хочете заборонити користувачам Вашого сайту розміщувати текст Вашого сайту на інших площадках в Інтернеті. В цьому випадку, пошукові системи будуть бачити Ваш текст як першоджерело.

Автор: Ярослав SOCHKA
Якщо стаття виявилася для Вас корисною, можете сказати "дякую", перерахувавши кілька гривень на власний розсуд (натисніть на кнопку): Подякувати

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *