Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Jores has a deprecated constructor in /www/it-joker.cz/it-joker.cz/includes/class.Jores.php on line 21

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Database has a deprecated constructor in /www/it-joker.cz/it-joker.cz/includes/class.Database.php on line 5

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; JoresTemplate has a deprecated constructor in /www/it-joker.cz/it-joker.cz/includes/class.JoresTemplate.php on line 84

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; JoresTemplate_plugin has a deprecated constructor in /www/it-joker.cz/it-joker.cz/includes/class.JoresTemplate.php on line 469
Jak zabránit návštěvníkovi stránky...?

„Ajťák“ Joker, osobní stránky

Nacházíte se v části webu: Hlavní stránka › Počítače, weby

Jak zabránit návštěvníkovi stránky...?

napsal Joker, 1.12.2007 1.41:04, naposledy upraveno 8.12.2007 23.26:19

V diskusích o tvorbě webových stránek se často objevují dotazy typu "Jak zabránit návštěvníkovi stránky zobrazit zdrojový kód?", "Jak zabráním návštěvníkovi uložit si obrázek z mojí stránky?" a podobně. Jak tedy na to? Jde to vůbec udělat? A je vůbec rozumné se o to snažit?

Jak funguje Internet (web)?

Nejdříve znázornění, jak vlastně funguje zobrazování webových stránek:

princip fungování webu1. Návštěvník zadá adresu do webového prohlížeče. Počítač podle adresy nalezne webový server a kontaktuje ho s požadavkem na příslušnou stránku.
2. Na webovém serveru jsou uloženy soubory (stránky, obrázky, atd.) Server vezme soubory odpovídající příslušné stránce (kód stránky, obrázky, Javascript, kaskádové styly, ...) a odešle je do návštěvníkova počítače.
3. Návštěvníkův počítač přijme soubory ze serveru, určitým způsobem je zpracuje (například podle HTML značek sestaví stránku, aplikuje kaskádové styly, a podobně) a výsledek zobrazí návštěvníkovi.

Všimněte si, že kód stránky, obrázky a další soubory ze serveru se nejdříve zkopírují do počítače návštěvníka a až ten z nich sestaví výslednou stránku. Počítač návštěvníka tedy už ze samotného principu fungování webových stránek musí dostat zdrojové soubory. A jakmile tyto soubory jako správce webu návštěvníkovi pošlete, už těžko můžete mít kontrolu nad tím, co s nimi návštěvník udělá. Z toho vyplývá, že už z principu nelze zabránit tomu, aby se návštěvník dostal ke zdrojovým souborům webu. Jediné, co udělat jde, je návštěvníkovi ztížit možnost se k obsahu dostat, případně obsah co nejvíce znečitelnit.

Techniky omezování návštěvníků a obcházení těchto technik

Existují různé metody, více či méně účinné a více či méně otravné. Podívejme se na některé z nich, jejich výhody a nevýhody a možnosti jejich obejití.

Zakázání pravého tlačítka

Zakázání pravého tlačítka myši má obvykle zabránit návštěvníkům manipulovat s obrázkem přes kontextové menu. Dělá se to Javascriptem, zhruba něčím takovýmto:

onmousedown="if((event.button == 2)||(event.button==3)) alert('Pravé tlačítko myši je blokováno!')".

Takový skript skutečně může některé nezkušené návštěvníky odradit. Potíž ale je, že takovým návštěvníkům se zablokuje celé kontextové menu, včetně funkcí, které webmasterovi nevadí a pro návštěvníka jsou užitečné. V kontextovém menu je například položka pro obnovení stránky, tisk, tlačítka vpřed a zpět, přidání stránky mezi oblíbené, a další. Někteří návštěvníci mohou být zvyklí ovládat stránky pomocí kontextové nabídky. Navíc se v moderních prohlížečích objevuje nastavení, které znemožní skriptu ovládat událost kliknutí pravým tlačítkem (například v Opeře tuto volbu najdete: F12 nebo kontextové menu stránky, Editovat místní nastavení, Skriptování, Povolit skriptu přijímat klepnutí pravým tlačítkem myši). A právě z důvodu různých "otravných" stránek mnoho lidí má takovouto volbu zapnutou. Je tedy otázka, jestli takový skript nakonec nebude jen otravovat nezkušené "slušné" uživatele, kteří si ani žádný obrázek stáhnout nechtěli.

Přenastavení prohlížeče

Tímto míním stránky, které se snaží vypínat pokud možno všechny nabídky prohlížeče, skrývat adresový řádek a navíc třeba blokovat pravé tlačítko. Cílem je odstřihnout návštěvníka od možností jeho webového prohlížeče. Tato technika má dvě omezení: Alespoň podle mého názoru neskutečně prudí podstatnou část uživatelů a za druhé obvykle funguje jen v IE6 a starších. V prohlížečích používajících listy/záložky (Opera, Firefox, IE7) je navíc hlavní nabídka obvykle společná pro všechny otevřené stránky a jednotlivá stránka ji nemůže skrýt. Navíc moderní prohlížeče obvykle umožňují návštěvníkovi stránkou skryté nabídky či panely opět zapnout. Podle mého názoru je tedy tato volba už spíše záležitost minulosti.

Obsah ve speciální aplikaci (Flash)

Další využívanou možností, zejména pro skrytí obrázků, je místo na webové stránce obsah zobrazovat v prohlížeči přes zásuvný modul, typicky to bývá Flash. Toto je poměrně účinná technika, protože na rozdíl od kódu webové stránky kód Flashového objektu není tak snadno čitelný. Nicméně ani Flash nezabrání návštěvníkovi v primitivní, ale účinné, metodě uložení obrázku: použití tlačítka Print Screen. Flash navíc vyžaduje zásuvný modul, takže někteří návštěvníci, a hlavně vyhledávače, se k obsahu uvnitř Flashe

Obrázek na pozadí

Jedna relativně použitelná a přitom bezpečná technika je nezobrazovat "chráněný" prvek přímo v prvku obrázek, ale jako obrázek na pozadí. Například místo <img src="obrazek.jpg"> se použije: <div style="background-image: url('obrazek.jpg'); width: 640px; height: 480px;"></div> (výška a šířka prvku musí odpovídat rozměrům obrázku). U obrázku na pozadí nejsou k dispozici běžné možnosti prohlížeče k uložení obrázku. Odradí to ovšem spíše začátečníky, pokud bude návštěvník znalejší, zjistí si přímo adresu obrázku z kódu stránky. A pokud sice nebude znalejší, ale bude o obrázek skutečně stát, zeptá se někoho zkušenějšího. 

Obfuskátory a "šifrování" kódu stránky

Technika využívaná pro znečitelnění zdrojového kódu stránky je využití zvláštního programu či skriptu, tzv. obfuskátoru, který kód stránky převede obvykle do Javascriptu a zašifruje a při zobrazení stránky ho další funce opět rozšifruje. I tato metoda má ovšem slabiny: potřeba kód zpracovávat Javascriptem zatěžuje počítač návštěvníka a zpomaluje načítání stránky. Navíc návštěvníci bez podpory Javascriptu, kam patří i vyhledávače, si stránku nepřečtou.

Jaká je skutečně bezpečná a neprůstřelná metoda?

Pokud doopravdy nechcete, aby si někdo Váš text nebo obrázek zkopíroval k sobě do počítače, je rada prostá: nedávejte ho na Internet. (doplněno 8.12.2007) Ano, tomu se říká dobrá rada nad zlato, nicméně znáte hru Hospoda Na Mýtince? Dědeček vždycky toužil mít hospodu, ale chodili mu tam lidi. Pokud nechcete, aby si Vaše texty či obrázky někdo prohlížel, proč je dáváte na web?

Ochrana vs. otravování

Představte si obchod, kde by při odchodu každého zákazníka prohledali, jestli něco neukradl. Pravděpodobně by to bylo velmi efektivní opatření, jak omezit krádeže. Proč to tedy nikdo tak nedělá? To je prosté- kdo by do takového obchodu chodil nakupovat? Zákazníci jsou pro obchod to hlavní. Stejnětak webové stránky se většinou dělají pro návštěvníky. Je až s podivem, jak jsou některé weby ochotné investovat peníze do reklamy, do různých optimalizací a na druhé straně návštěvníky vyhánět. Návštěvníku, nemáš ten správný prohlížeč, táhni odkud jsi přišel. Návštěvníku, nemáš Flash plugin, nainstaluj si ho a potom se vrať. A tak dále, a tak podobně. Vždy je třeba zhodnotit, zda použití nějaké techniky neomezí přístupnost webu, případně o kolik návštěvníků web přijde a jestli přínosy opravdu za to stojí.

Setkal jsem se například i s tím, že stránky na jednom webu se nedaly rozumně vytisknout. Poradil jsem autorovi, aby udělal zvláštní stylopis pro tisk, že to na tiskárně vypadá hrozně. Odpovědí bylo, že on ale nechce, aby si jeho stránky někdo tisknul, ať se na ně podívá na webu, alespoň bude víc návštěvníků. Otázkou ale je, jestli se ti návštěvníci nakonec nepřesunou někam, kde jim nabídnou více komfortu.

Takže moje stránky může kdokoliv zkopírovat a já se nemůžu bránit?

To zase ne. Na straně autora stránek (obsahu, kódu i grafiky) je autorské právo. Psát někomu, kdo mi okopíroval stránky, že je to nelegální a že má daný obsah stáhnout se může zdát jako zcela beznadějné mrhání časem, ovšem z mé zkušenosti to tak většinou není. Překvapivě mnoho lidí nemá pojem o autorských právech a pokud je někdo upozorní, že dělají něco nelegálního, často obsah sami stáhnou. A pokud ho nestáhne samotný autor, obvykle se dá mluvit s někým "o úroveň výše" (provozovatel serveru, apod.) Navíc případy kopírování nebývají zas tak časté, moho lidí má představu, že si celý Internet bude chtít zkopírovat jejich nový design, ve skutečnosti se ale většinou jedná o několik málo jedinců, pokud vůbec někdo. Pak je skutečně otázka, jestli se vyplatí ušetřit si psaní "výhrůžných mailů" třeba třem, čtyřem lidem za cenu toho, že web přijde třeba o 5% návštěvníků.


[1] od: Flip × (4.12.2007 20.02:43)
pobavil jsi mě :) čtu článek o tom jak ochránit svou webovou prezentaci a tvoje výsledná rada je NEDAVEJTE TO NA INTERNET xD... nic proti ale psát článek o tom, že vlastně nemá řešení mi přijde uhozené ;)

[2] od: Joker ® (4.12.2007 23.06:58)
To ale není pointa článku- viz ještě zbývající dvě kapitoly za tou radou. Ani pointa té samotné rady. Ta rada je uhozená schválně, aby poukázala na uhozenost samotné otázky: dávám něco na web, aby si to co nejvíc lidí přečetlo, a současně se jim v tom čtení snažím bránit. Ale jinak jsou v článku vypsané i ty ostatní metody. A že mají i nevýhody? No právě o tom ten článek je, že ty metody nemají jen výhody. A pointou článku není nedávat věci na web, pointou článku je, že spolehnout se na svá autorská práva může být často efektivnější řešení, než se snažit o sofistikované Javascripty nebo něco takového.

[3] od: Aleš Janda × (10.12.2007 23.31:15)
Pěkný článek :-) Tohle by se mohlo tesat zlatým písmem, ale stále budou jak na pásu přicházet noví a noví, kteří se budou všemožně snažit něčemu zabránit. Třeba se to jednou změní... P.S.: Odstavec o Flashi je trochu odříznutý ;-)

[4] od: Petr × (27.12.2007 12.04:16)
Článek je podle mě ok, nechápu spíš připomínku Flipa. Já momentálně řeším jak zabránit zkopírování informací z firemního intranetu. Informace nejsou pro 99% lidí zajímavé, ale firmě by mohlo uškodit kdyby například nějaký zaměstnanec odešel ke konkurenci a zkopíroval by si technologické postupy a další "zajímavosti". Budu vděčný za každý nápad.

[5] od: Mr. Kev × (27.4.2008 19.43:45)
No ono to není zas tak pravda. Třeba když si chce někdo vyvěsit své obrazy co namaloval, ale má je vystavené jen pro to, aby se lidi podívali a řekli si "aha, ten obraz se mi líbí, já ho chci", tak aby kontaktovali umělce a obraz si od něj koupili. Když si dá omezení kopírování, tak zabrání tomu, aby někdo přišel, udělal ctrl+c ctrl+v a vytiskl si obraz na A4 (třeba - když to přeženu). V tomto případě se zablokování hodí. Samozřejmě, když někdo opravdu ten obraz chce zkopírovat, způsob si najde, ale někteří to nedokáží a tak aspoň částečně kopírování zabrání...

[6] od: Keeehi × (27.5.2008 22.25:14)
Ttento článek je výborný. Člověk to aspoň nemusí přád psát do diskusí a stačí jen napsat odkaz sem. O zákazu kopírování obrázků jsem trochu přemýšlel (samozřejmostí je, že zabránit kopírování nelze) a přišel jsem na toto: Vezmeme dva divy, a napozicujeme je přes sebe. spodní div - background-image: url('obrazek.jpg'); a svrchní - "background-image: url('přes.gif(popřípadě png)');. gif(png) bude na některých místech průhledný,na jiných ne -> print screen je nanic. Pravým tlačítkem to také nejde. Jsou dvě možnosti získat obrázek z cache, nebo si ho najít přímo přes url. (jen mě ještě napadlo zakázat na servru přístup do složky s obrázky všem, kromě pár určených stránek -> odpadá problém url. Nemám to však vůbec vyzkoušený, jestli by to šlo nějakudělat.)

[7] od: Joker ® (28.5.2008 7.03:56)
[6] "Člověk to aspoň nemusí přád psát do diskusí a stačí jen napsat odkaz sem" - Ano, to byl taky důvod, proč jsem ten článek napsal :-) Co se týká té metody, "ještě napadlo zakázat na servru přístup do složky s obrázky všem...", o tom v článku píšu, že to nejde udělat. Obrázek je HTTP požadavek z toho počítače, pokud mu zakážete přístup, neuvidí obrázek ani na stránce. Pokud mu přístup povolíte, může si obrázek i stáhnout. Jinak ještě další způsob je uložit si ten obrázek z cache prohlížeče. Jak píšu i v článku, prostě už ve chvíli, kdy uživatel vidí obrázek na monitoru ho má stažený v počítači.

[8] od: zdenek × (15.6.2008 0.44:54)
Zdravim majitele blogu potřeboval bych od vás pomoc neznáš nějaký kod proti kopírování fotek na profilu lide.cz

[9] od: LukasK × (28.8.2008 15.31:10)
zdenek vtipálek...

[10] od: Ondra × (31.8.2008 13.33:06)
Dobry clanek. Nemate nahodou nekdo kontakt na nejakeho pravnika, co se zabyva nelegalnim kopirovanim webu? Mam eshop a konkurence mi naprosto drze kopiruje popisy, ktere si delam pro jednotlive zbozi. Popisy mi zaberou dost casu, tak me to vadi.

[11] od: tom × (27.1.2013 13.40:16)
Autor článku je opravdu Idiot!

[12] od: Joker ® (27.1.2013 15.04:28)
[11] O nikom jménem Idiot jsem bohužel neslyšel, tak nevím, jestli to je lichotka nebo urážka, ale snad to je lepší, než být idiot s malým i.

[13] od: Kubo2 × (21.4.2013 13.01:57)
[4],[10] -> Ako už bolo písané, zabrániť pomocou javascriptu užívateľom robiť v prehliadači nežiaduce akcie, vo vašom prípade kopírovaniu textu - je pomerne ľahké, ale iba pokiaľ ide o neskúsených užívateľov. (Kopírovaniu textu iba z dokumentu okrem URL adresy sa dá napríklad nasledovne: window.document.oncopy=(function(){return false;}); -- ale nikdy si nemôžete byť istý, že si používateľ nezobrazí zdrojový kód a neskopíruje si vaše texty odtiaľ; na zdrojový kód totiž neplatí jS aplikovaný na stránku.) V podstate teda musíte vedieť o svojich užívateľoch aspoň to, akú úroveň práce s počítačom majú zvládnutú, aby ste im mohli v niečom zabrániť.

Přidat nový komentář