Ochrona strony
Ochrona strony
Czasami zdarza się, że chcemy opublikować w sieci jakieś ważne informacje. Zależy nam jednak, aby można się było z nimi zaznajomić tylko bezpośrednio na naszej stronie WWW i nie chcemy udostępniać takich materiałów do dalszej publikacji innym osobom. Chodzi tutaj głównie o opracowania typu: praca dyplomowa, ważny referat lub obszerny artykuł, unikalna grafika nad którą długo pracowaliśmy czy wyniki badań doświadczalnych. Niestety zwykle jedyną ochroną przed plagiatami jest podanie wyraźnej informacji: "Wszelkie prawa zastrzeżone". Jak wiadomo taki zapis sam w sobie niestety nie może uchronić przed podkradaniem naszej własności intelektualnej.
Istnieją pewne metody utrudniające kradzież materiałów ze strony WWW. Od razu chciałbym wyraźnie podkreślić, że nie są to prawdziwe zabezpieczenia, a tylko pewne przeszkody, mogące zatrzymać raczej osoby początkujące, które jednak stanowią większość wśród użytkowników sieci. Według mnie nie warto w ten sposób zabezpieczać każdej strony internetowej, ponieważ irytuje to tylko internautów, a i tak prawdopodobnie nie zatrzyma osób bardzo zdeterminowanych, znających w jakimś stopniu język HTML i JavaScript.
Dalej w tym rozdziale znajdziesz wybrane formy blokady niedozwolonych działań na stronie. Oczywiście można je ze sobą łączyć.
Blokada prawego klawisza myszki
Zabezpiecza przed wybraniem "Pokaż źródło" z menu kontekstowego.
<body oncontextmenu="return false"> ... </body>
Uwaga! Źródło dokumentu nadal będzie można podejrzeć, wybierając odpowiednią opcję z górnego menu przeglądarki. Poza tym nie wszystkie przeglądarki interpretują to polecenie. Częściowo można zlikwidować ten problem, otwierając stronę w nowym oknie bez paska menu. Można również próbować otwierać stronę zawsze w ramkach - wtedy z menu będzie można zobaczyć jedynie źródło "mało ciekawej" strony startowej.
Blokada zaznaczania i kopiowania tekstu
<body onselectstart="return false" onselect="return false" oncopy="return false"> ... </body>
Blokada przeciągania elementów strony
Zabezpieczna m.in. przed przeciąganiem obrazków do innego okna lub programu w celu ich zapisania na dysku.
<body ondragstart="return false" ondrag="return false"> ... </body>
Blokada drukowania
<body onbeforeprint="document.body.style.visibility = 'hidden'; alert('Wydruk jest niedostępny!')" onafterprint="document.body.style.visibility = 'visible'"> ... </body>
Blokada zapisu wybranych zdjęć
<img src="zdjecie.jpg" alt="Tekst alternatywny" onmousedown="return false" oncontextmenu="return false" onselectstart="return false" onselect="return false" oncopy="return false" ondragstart="return false" ondrag="return false">
[Zobacz: Obrazek]
Blokada paska narzędziowego obrazów
Pasek narzędziowy obrazów to zestaw ikon, który w niektórych przeglądarkach mógł pojawiać się ponad dużymi zdjęciami po "najechaniu" myszką (zwykle oba wymiary grafiki - szerokość i wysokość - muszą wynosić co najmniej 200 pikseli), co umożliwiało m.in. wydruk lub zapisanie grafiki na dysku.
- Dla wszystkich zdjęć na stronie (wstaw w nagłówku dokumentu - <head>...</head> - poniższy kod):
<meta http-equiv="Imagetoolbar" content="no">
- Tylko dla wybranych zdjęć:
<img src="zdjecie.jpg" alt="Tekst alternatywny" galleryimg="no">
Blokada klawisza Print Screen
Klawisza Print Screen umożliwia wykonanie prostego zrzutu ekranu i późniejszego wklejenia do programu graficznego. Należy wstawić do dokumentu specjalny kod w następujący sposób:
<html> <head> <script> var browser = navigator.userAgent; var ie = 0; if (browser.indexOf("MSIE") != -1 && browser.indexOf(") ") == -1) ie = parseFloat(browser.substring(browser.indexOf("MSIE")+4)); var id_status_blink = 0; function status_blink(txt) { window.status = txt; if (!txt) id_status_blink = setTimeout('status_blink("KLIKNIJ WEWNĄTRZ OKNA PRZEGLĄDARKI !!!!!")', 250); else id_status_blink = setTimeout('status_blink("")', 1500); return true; } function blur_ie() { document.all["body"].style.visibility = "hidden"; clipboardData.clearData(); status_blink(""); } function focus_ie() { document.all["body"].style.visibility = "visible"; if (id_status_blink) clearTimeout(id_status_blink); window.status = ''; return true; } if (ie >= 5) { window.onblur = blur_ie; window.onfocus = focus_ie; } </script> </head> <body> <div id="body"> Treść dokumentu </div> </body> </html>
Oczywiście w nagłówku dokumentu mogą - a nawet powinny (!) - znaleźć się również inne znaczniki (<meta>
, <title>...</title>
itp.). Nie można zapomnieć o deklaracji DTD. Nic nie stoi również na przeszkodzie, aby dodać atrybuty do znacznika BODY, określające np. kolor tekstu i tła strony. Ważne jest jedynie, aby skrypt został wstawiony w ramy dokumentu tak jak pokazano.
Podsumowanie
Niestety takie rozwiązania zwykle nie są idealne i zawsze znajdzie się droga, aby je obejść. Mogą one natomiast utrudnić życie początkującym "hakerom". Powtarzam jeszcze raz: w większości przypadków stosowanie tych poleceń nie ma dużego sensu, ponieważ nie taka jest idea Internetu. Nie widzę większego celu w zabezpieczaniu w ten sposób wszystkich stron zwykłego serwisu. Irytuje to tylko użytkowników, a jeśli ktoś naprawdę będzie chciał podejrzeć źródło dokumentu, skopiować tekst lub zdjęcie, prawdopodobnie i tak znajdzie sposób, żeby to zrobić. A poza tym zastanów się, czy na Twojej stronie rzeczywiście są aż tak tajne dane, że naprawdę nikt nie może mieć do nich dostępu? Jeśli tak, to uzmysłów sobie, że powyższe sposoby stanowią tylko utrudnienie, a nie prawdziwe i pewne zabezpieczenie.
Obszerniejsze artykuły na temat zabezpieczania treści stron WWW znajdziesz w serwisie Cream Software: