1 <!-- subject: Zabezpieczanie kodu strony {WWW} -->
2 <!-- date: 2008-02-12 05:43:57 -->
3 <!-- categories: Articles, Techblog -->
5 <p>Niektórzy uważają, że użytkownik czytający ich stronę nie powinien
6 mieć dostępu do niczego poza ostatecznym efektem renderowania strony.
7 Najczęściej jest to spowodowane chęcią zabezpieczenia
8 kodu HTML lub obrazków przed kopiowaniem
9 i używaniem ich do własnych celów.
13 <h2 id=
"how">Jak to zrobić?
</h2>
15 <p>W celu uniemożliwienia kopiowania kodu, obrazków lub tekstu
16 dokumentu możesz wykonać jedną z poniższych rzeczy:
19 <li>połącz się do swojego serwera, zaznacz wszystkie pliki i wybierz
21 <li>zamiast wysyłać stronę na serwer, nagraj ją na dyskietki po czym
22 zakop je w ogródku (tak z
10 metrów pod ziemią). Warto też mieć
24 <li>zaszyfruj stronę jakimś mocnym algorytmem szyfrującym z użyciem
25 dużego klucza (milion bitów powinno wystarczyć) po czym usuń
26 wszelkie kopie klucza;
27 <li>przed wysłaniem strony na serwer, sformatuj sobie dysk
29 <li>stwórz stronę używając MS Frotnapge’a lub MS Worda (Co prawda
30 źródło będzie widoczne, ale nikt nie będzie chciał go
32 <li>nie publikuj strony w Internecie.
35 <h2 id=
"impossible">Tego nie da się zrobić
</h2>
37 <p>Ze względu na naturę Internetu oraz HTML-a nie da się zabezpieczyć
38 strony ani żadnych jej elementów przed kopiowaniem. Jeżeli użytkownik
39 widzi w przeglądarce efekt renderowania strony, to ma również dostęp
40 do składników, z których strona się składa. Jednak wiele osób
41 obłudnie probuje stosować różne dziwne metody.
43 <h3 id=
"mouseclick">Blokowanie prawego przycisku myszy
</h3>
45 <p>Sposób ten jest bardzo prosty do zaimplementowania i jednocześnie
46 bardzo prosty do obejścia. W niektórych przeglądarkach w ogóle nie
47 działa, a jeżeli działa to wystarczy kliknąć prawym klawiszem myszki
48 trzymając wciśnięty Shift.
50 <p>Niektóre wersje skryptów blokujących PPM dodatkowo wyświetla komunikat z informacjami o
51 prawach autorskich. Jedyne co taki komunikat powoduje to fakt, że
52 użytkownik staje się coraz bardziej zdenerwowany z każdą chwilą.
54 <h3 id=
"encrypt">„Szyfrowanie” źródła
</h3>
56 <p>Jak zapewne każdemu wiadomo, szyfrowanie polega na przekształcenie
57 tekstu w taki sposób, żeby było niemożliwe odczytanie go bez
58 znajomości algorytmu deszyfrowania i w niektórych przypadkach
59 klucza. Jednak jeżeli autor strony chce, żeby przeglądarka mogła
60 renderować stronę to musi być w stanie odszyfrować „zaszyfrowany” kod
61 źródłowy. Jeżeli przeglądarka ma taką możliwość to jednocześnie
62 użytkownik, który chce się dobrać do kodu źródłowego.
64 <p>W niektórych przypadkach wystarczy na początku kodu strony dodać
65 <code><textarea
></code> a na końcu
<code></textarea
></code>. Po
66 otwarciu tak zmodyfikowanej strony, bardzo możliwe, że w polu
67 tekstowym będziemy widzieć kod strony.
69 <p>Jeszcze prostszym sposobem jest użycie DOM
70 Inspectora z
<a href=
"https://www.mozilla.org/">Mozilli
</a>. Wystarczy
71 go włączyć, wybrać kopiowanie do schowka drzewa HTML i na koniec
72 wklejenie tekstu do ulubionego edytora tekstowego. W ten sposób
73 będziemy mieć dostęp do pełnego źródła strony.
75 <h3 id=
"images">Blokowania zapisywania obrazków
</h3>
77 <p>Jest na to wiele sposobów i każdy można obejść w jeden bardzo
78 prosty sposób: Zapisanie zrzutu ekranu. W większości graficznych
79 interfejsów użytkownika wystarczy wcisnąć
<b>Print Screen
</b> po czym
80 wkleić zawartość schowka w jakimś edytorze grafiki. Taktyka działa w
81 100% przypadków. W innych sytuacjach można zajrzeć do kodu strony i
82 tam można sprawdzić adres obrazka.
84 <h2 id=
"whatthen">Co więc można zrobić?
</h2>
86 <p>Przede wszystkim należy wyraźnie zaznaczyć, do kogo należą prawa
87 autorskie oraz napisać, iż kopiowanie materiałów bez zgody autora jest
88 nielegalne. Z drugiej jednak strony nie należy z tym przesadzać
89 pisząc tą informację czcionką
50pt jakimś rzucającym się w oczy
90 kolorem - to tylko denerwowało by czytelników.
92 <p>W przypadku obrazków można także umieścić na stronie obrazki w kiepskiej
93 jakości - takiej, która się nikomu na nic nie przyda. Również warto dodawać
94 tekst na obrazku z adresem strony i ewentualnie imieniem autora.
97 <!-- date: 2008-02-12 06:38:43 -->
98 <!-- nick: jam łasica -->
99 <!-- nick_url: http://jamlasica.jogger.pl -->
101 <p>Co do zabezpieczonych obrazków, to w Fx wystarczy otworzyć informacje o stronie i wybrać sekcję „media” ;)
104 <!-- date: 2008-02-12 06:43:51 -->
105 <!-- nick: mina86 -->
106 <!-- nick_url: http://mina86.com -->
108 <p>O ja… A myślałem, że to tylko ja nie śpię o tak nieboskiej godzinie…
110 <p>Co do „media”, to ktoś mógłby probować zabezpieczyć obrazek wrzucając go do flasha i tu już może być gorzej, a zrzutu ekranu nic nie przebije. :]
112 <p>Chyba, że przeglądarki zaczną implementować Digital Restrictions Management (i wówczas będzie trzeba kupić między innymi odpowiedni kabel łączący kartę graficzną z monitorem).
115 <!-- date: 2008-02-12 09:12:14 -->
117 <!-- nick_url: http://zal.jogger.pl -->
119 <p>@mina86: ale zaciemnienie kodu nie jest niemożliwe, prawda? Jakby się ktoś uparł to mógłby doprowadzić do sytuacji w której to kod wyglądałby, jak mielonka ;]
122 <!-- date: 2008-02-12 13:44:26 -->
124 <!-- nick_url: http://blog.jkral.info -->
126 <p>W sumie to wystarczy napisać zwykły kod, a później usunąć z niego wszystkie białe znaki :D Ja w takim wypadku wolałbym chyba napisać coś samemu, niż babrać się w czymś takim.
129 <!-- date: 2008-02-12 15:36:25 -->
130 <!-- nick: mina86 -->
131 <!-- nick_url: http://mina86.com -->
133 <p>Zal: to zależy jak na to spojrzeć. Może i faktycznie, np. po wycięciu wszystkich białych znaków, z kodu strony robi się mielonka, ale od czego jest wspomniany w artykule DOM Inspector? Nie to, żeby widział go kiedykolwiek na oczy w akcji, ale z tego co mi wiadomo, umożliwia on wyciągnięcie ładnie sformatowanego drzewa XML dokumentu.
136 <!-- date: 2008-02-13 00:06:04 -->
138 <!-- nick_url: http://blog.rczajka.pl -->
140 <p>Można sobie pisać, co się chce, ale kopiowanie materiałów z czyjejś strony nie wymaga żadnej zgody autora. Nie popadajmy w paranoję.
143 <!-- date: 2008-02-13 00:08:32 -->
144 <!-- nick: mina86 -->
145 <!-- nick_url: http://mina86.com -->
147 <p>Niezależnie czy nam się to podoba, czy nie, owszem wymaga. Chyba, że podpada to pod dozwolony użytek, ale np. skopiować artykuły o długości podobnej do komentowanego nie można, choć można cytować jego fragmenty.
150 <!-- date: 2008-02-13 00:15:54 -->
152 <!-- nick_url: http://blog.rczajka.pl -->
154 <p>Nie, nie wymaga. :)
156 <p>Owszem, upublicznianie skopiowanych materiałów wymaga pozwolenia. Ale samo skopiowanie nie. Każdy ma prawo sobie zapisać np. artykuł na dysku na pamiątkę, albo wydrukować i powiesić na ścianie, albo ustawić skopiowane zdjęcie na tapecie swojego komputera, albo oprawić w ramki i dać swojej sympatii na pamiątkę. Kopiowanie materiałów z Internetu jest jak najbardziej legalne i nie wymaga niczyjego pozwolenia.
159 <!-- date: 2008-02-13 00:19:12 -->
160 <!-- nick: mina86 -->
161 <!-- nick_url: http://mina86.com -->
163 <p>Jeśli o to chodzi, to faktycznie, chyba tak jest (to ten tzw. dozwolony użytek czy coś). Z drugiej strony prawnikiem nie jestem, więc mogę się mylić, zwłaszcza, że niestety niektóre organizacje mają na ten temat inne poglądy.
166 <!-- date: 2008-02-13 00:20:17 -->
168 <!-- nick_url: http://blog.rczajka.pl -->
170 <p>Te organizacje nie mają poglądów, tylko interesy: „powinno być tak a tak, bo wtedy mielibyśmy z tego najwięcej pieniędzy”. :)
173 <!-- date: 2009-01-08 17:36:09 -->
174 <!-- nick: blinki -->
176 <p>hmm… widze ze malo wiesz… :D jesli zakoduje jakas strone w php to nawet jak dostaniesz sie do zrodla to nie zobaczysz funkcji php… tylko zobaczysz strone juz po wykoniau akcji na serverze (po execute) czyli jesli ja zaszyfruje w php nie jestes w stanie tego rozkodowac chyba ze jakims cudem znajdziesz algorytm wymyslony przez webmastera… albo wlamiesz sie na ftp i pobierzesz algorytm :D troche lipne info na tej stronie… :)
179 <!-- date: 2009-01-08 18:10:17 -->
180 <!-- nick: mina86 -->
181 <!-- nick_url: http://mina86.com -->
183 <p>blinki, mylisz pojęcia (i na dodatek piszesz w sposób trudny do zrozumienia). W artykule mowa jest o kodzie HTML (tudzież CSS, JavaScript i obrazki), na którego zabezpieczenie nie ma sposobu.
185 <p>O PHP (ani o innych mechanizmach wykonywanych po stronie serwera) nic nie pisałem i, muszę się przyznać, nie za bardzo zrozumiałem o co Ci chodzi z tym szyfrowaniem. Zakładając poprawnie skonfigurowany serwer oraz dobrze napisane skrypty (w przypadku PHP z tym może być problem) żadne szyfrowanie nie jest potrzebne, aby odciąć dostęp do kodu skryptu.