Press "Enter" to skip to content

Zabezpieczenie sklepu przed kopiowaniem grafik – blokada prawego przycisku myszki

Admin 0

Na wstępnie należy dość opacznie napisać: nie istnieje metoda zabezpieczenia grafik przed kopiowaniem na stronach internetowych ;-)

Nie istnieje, jednak można ten „proceder” dość mocno utrudnić intruzowi. Niestety jak będzie on wystarczająco zmotywowany (lub będzie dysponował odpowiednią wiedzą na ten temat) – i tak pobierze np. zdjęcie lub grafiki..

Takim utrudnieniem jest na pewno blokada użycia prawego przycisku myszki na całej stronie sklepu.

Dodatkowo możemy uniemożliwić zaznaczanie tekstu/zdjęć z opisów.

Jak to zrobić? Ogranicza się to do edycji 3 plików.

Jeśli jesteśmy programistami/webmasterami – taka blokada może nam utrudnić pracę.. Dlatego podaliśmy też metodę na szybkie wyłączenie blokady poprzez komentarze 🙂

1) Blokada w tagu < body >

Otwórz plik

(PrestaShop 1.6.x)

/themes/{SZABLON}/header.tpl

(PrestaShop 1.7.x)

/themes/{SZABLON}/templates/layouts/layout-both-columns.tpl

Następnie znajdź tam znacznik

<body>

Następnie dodaj do niego atrybut:

<body oncontextmenu="return false;">

Czyli np.

Wartość:

<body{if isset($page_name)} id="{$page_name|escape:'html':'UTF-8'}"{/if} class="{if isset($page_name)}{$page_name|escape:'html':'UTF-8'}{/if}{if isset($body_classes) && $body_classes|@count} {implode value=$body_classes separator=' '}{/if}{if $hide_left_column} hide-left-column{else} show-left-column{/if}{if $hide_right_column} hide-right-column{else} show-right-column{/if}{if isset($content_only) && $content_only} content_only{/if} lang_{$lang_iso}">

Zamień na:

<body{if isset($page_name)} id="{$page_name|escape:'html':'UTF-8'}"{/if} class="{if isset($page_name)}{$page_name|escape:'html':'UTF-8'}{/if}{if isset($body_classes) && $body_classes|@count} {implode value=$body_classes separator=' '}{/if}{if $hide_left_column} hide-left-column{else} show-left-column{/if}{if $hide_right_column} hide-right-column{else} show-right-column{/if}{if isset($content_only) && $content_only} content_only{/if} lang_{$lang_iso}" oncontextmenu="return false;">

Czasowe wyłączenie blokady – użyj komentarza:

<body{if isset($page_name)} id="{$page_name|escape:'html':'UTF-8'}"{/if} class="{if isset($page_name)}{$page_name|escape:'html':'UTF-8'}{/if}{if isset($body_classes) && $body_classes|@count} {implode value=$body_classes separator=' '}{/if}{if $hide_left_column} hide-left-column{else} show-left-column{/if}{if $hide_right_column} hide-right-column{else} show-right-column{/if}{if isset($content_only) && $content_only} content_only{/if} lang_{$lang_iso}" /* oncontextmenu="return false;"*/ >

2) Blokada zaznaczania tekstu w CSS

Otwórz plik:

(PrestaShop 1.6.x)

/themes/{SZABLON}/css/global.css

(PrestaShop 1.7.x)

/themes/{SZABLON}/assets/css/theme.css

I umieść gdzieś na jego początku (np. po deklaracji html {} albo table {} ) kod:

body{
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

Czasowe wyłączenie blokady – użyj komentarza:

/*
body{
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
*/

3) Wyłączenie PPM (prawego przycisku myszki) – JavaScript

Otwórz plik:

(PrestaShop 1.6.x)

/themes/{SZABLON}/js/global.js

(PrestaShop 1.7.x)

/themes/{SZABLON}/assets/js/custom.js

I dopisz na jego końcu nast. kod:

 //Disable right-click of mouse, F12 key, and save key combinations on page
 //By Arthur Gareginyan (arthurgareginyan@gmail.com)
 //For full source code, visit https://mycyberuniverse.com
 
window.onload = function() {
 document.addEventListener("contextmenu", function(e){
   e.preventDefault();
 }, false);
 document.addEventListener("keydown", function(e) {
 //document.onkeydown = function(e) {
   // "I" key
   if (e.ctrlKey && e.shiftKey && e.keyCode == 73) {
     disabledEvent(e);
   }
   // "J" key
   if (e.ctrlKey && e.shiftKey && e.keyCode == 74) {
     disabledEvent(e);
   }
   // "S" key + macOS
   if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
     disabledEvent(e);
   }
   // "U" key
   if (e.ctrlKey && e.keyCode == 85) {
     disabledEvent(e);
   }
   // "F12" key
   if (event.keyCode == 123) {
     disabledEvent(e);
   }
 }, false);
 function disabledEvent(e){
   if (e.stopPropagation){
     e.stopPropagation();
   } else if (window.event){
     window.event.cancelBubble = true;
   }
   e.preventDefault();
   return false;
 }
};

Czasowe wyłączenie blokady – użyj komentarza:

/*
 //Disable right-click of mouse, F12 key, and save key combinations on page
 //By Arthur Gareginyan (arthurgareginyan@gmail.com)
 //For full source code, visit https://mycyberuniverse.com
 
window.onload = function() {
 document.addEventListener("contextmenu", function(e){
   e.preventDefault();
 }, false);
 document.addEventListener("keydown", function(e) {
 //document.onkeydown = function(e) {
   // "I" key
   if (e.ctrlKey && e.shiftKey && e.keyCode == 73) {
     disabledEvent(e);
   }
   // "J" key
   if (e.ctrlKey && e.shiftKey && e.keyCode == 74) {
     disabledEvent(e);
   }
   // "S" key + macOS
   if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
     disabledEvent(e);
   }
   // "U" key
   if (e.ctrlKey && e.keyCode == 85) {
     disabledEvent(e);
   }
   // "F12" key
   if (event.keyCode == 123) {
     disabledEvent(e);
   }
 }, false);
 function disabledEvent(e){
   if (e.stopPropagation){
     e.stopPropagation();
   } else if (window.event){
     window.event.cancelBubble = true;
   }
   e.preventDefault();
   return false;
 }
};
*/

Wdrożenie zmian – wyłączenie cache.

UWAGA! Aby zmiany były widoczne należy dezaktywować cache sklepu i wymusić kompilację!

Dla przypomnienia:

Wejdź w dział:

Zaawansowane -> Wydajność -> (sekcja) Ustawienia dotyczące Smarty

1) Zanotuj zastane ustawienia, dla przykładu:

2) Następnie zmień

a) Ustawienie dotyczące smarty:

„Kompilacja szablonu” ustawić na: „Wymuś kompilację”

b) kolejną opcję „Pamięć podręczna” przestawić na „NIE”

Wciśnij przycisk „Zapisz”

3) Dla pewności kliknij przycisk u góry: „Wyczyść pamięć podręczną

4) Przeładować stronę główną i zobaczyć czy blokady działają

5) Przywrócić ustawienia do wartosci domyślnych z przed zmiany ustawień.

– – –

Oczywiście można też zastosować znaki wodne na zdjęcia, jednak przeważnie one dość szpecą grafiki.

grafika: peakpx.com

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Edytor kategorii CMS w PrestaShop 1.7. Jak dodać tam wizualny…