Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!
Kategorie

Kategorie

Kategoria wyżej
O autorze

O autorze

Redakcja PHP.pl
Reklama

Reklama

Podobne Artykuły

Poniżej znajduje się lista podobnych artykułów:
Brak powiązanych artykułów

Prawda o ukrywaniu kodu źródłowego strony

Temat ukrywania źródła naszej strony jest dość często poruszany na naszym forum, towarzyszą mu zawsze spore emocje - głównie ze względu na podzielone zdania forumowiczów. Jedni piszą, że nie da się ukryć źródła strony - inni, że jest to możliwe. Ja osobiście należałem do partii tych drugich, dlatego postanowiłem napisać artykuł pokazujący jak poprawnie ukrywać źródło. Napisałem i "troszkę" poprawiłem go, a teraz pragnę podzielić się wnioskami, które wyniosłem pisząc owy tekst.

Osobiście nie jestem zwolennikiem ukrywania, czy też kodowania kodu źródłowego stron - jako, że propagujemy na www.php.pl i staramy się rozpowszechniać standard OpenSource (ang. dosł. tlum. "otwarte źródło"). Z drugiej strony jestem świadom faktu, iż może zaistnieć sytuacja, gdy ukrycie źródła może zadecydować o tym czy nasze dzieło pojawi się w Sieci czy też nie. Przykładem mogą być rozwiązania (JavaScript, DHTML, etc.), które powinny pozostać nieodgadnione dla odwiedzającego, a zarazem muszą pojawić się w Sieci.

Wyobraźcie sobie kochani, że poniższy artykuł był naprawdę obszerny, ale pisząc go, doszedłem do jakże przykrego wniosku, iż każdy z podanych przeze mnie sposobów na ukrycie źródła, jest do "obejścia" przez bardziej obeznanego z technologią internautę.

Szczypta teorii

Jak wiemy "część teoretyczna" często ma nie wiele wspólnego z "częścią praktyczną", podobnie jest w tym przypadku. Poniżej wypunktowałem operacje, które teoretycznie powinny zablokować osobą trzecim możliwość podglądania źródła.

  • Zablokowanie możliwości podglądnięcia źródła z pod przeglądarkiJest to możliwe, lecz tylko na mało obeznanych użytkowników. Dla tych bardziej "w temacie" problemu z podglądnięciem źródła nie ma, ponieważ z JavaScript'em jest tak, że często inaczej interpretują go różne przeglądarki, dlatego nie każda pozwoli nam zablokować menu lub podgląd źródła. Oczywiście możemy wykorzystać PHP, aby pokazywał stronę tylko pod przeglądarką Microsoftu, takim sposobem jesteśmy pewni, że JavaScript będzie działał. Ale doświadczeni użytkownicy w bardzo prosty sposób zmylą nasz skrypt, tak, aby on "myślał", że ma do czynienia z IE - a tak naprawdę będzie to zupełnie inny program.
  • Zablokowanie możliwości zapisania strony na dyskuMało możliwe. Możemy ściągnąć stronę programami kopiującymi całe serwisy i nie pomoże nam nawet ustawienie HTTP_USER_AGENT aby nie dopuścił owych programów do strony, ponieważ dobry software tego typu może "podszyć się" pod praktycznie każdą aplikację, czyli sytuacja podobna do wcześniejszego punktu.
  • Wyłączenie pamięci podręcznej przeglądarkiWiemy, że przeglądarki internetowe zapisują strony do swojego wewnętrznego cache'u (dla Internet Explorer'a będzie to folder ".../Documents and Settings/.../Windows/Temporary Internet Files"), dzięki temu po otworzeniu strony, automatycznie zapisuje się ona na dysku naszego komputera. Jednak możemy uniknąć cache'owania stron przez przeglądarki. Z pomocą w tym wypadku przychodzi nam PHP i funkcja header(). Przez odpowiednie wysłanie nagłówków, powinno się udać ominąć wszystkie ustawienia pozwalające na zbuforowanie strony przez przeglądarkę, lecz co nam z tego, jeżeli dwie poprzednie metody uniemożliwienia dostępu, zawiodły.

Wniosek

Jak widzicie zabezpieczenie naszej pracy nie jest proste. Ale sama teoria ukrywania kodu może być rozumiana dwojako. Ukrywanie swoją drogą, lecz istnieje jeszcze możliwość kodowania źródła - dzięki zakodowaniu naszego projektu, odwiedzający będą miały nie lada problem z odkodowaniem jego. Lecz jak w każdym przypadku, istnieje także pułapka. Przykładowo, chcielibyśmy zakodować kod JavaScript, jest to możliwe ale mogą wystąpić problemy gdy po odkodowaniu owego skryptu, on po prostu będzie odmawiał współpracy. Ale takie problemy pojawiają się naprawdę rzadko.

Osobiście gdybym miał kodować źródło to użyłbym programu HTML Guardian, który jest konkretnie stworzone w celu zabezpieczenia naszego kodu. Jeżeli stać was na zakupienie licencji na ten program to gorąco zachęcam do zrobienia tego. Oferuje on nam wiele opcji zabezpieczenia źródła:

  • Kodowanie źródła
  • Ochrona strony hasłem
  • Ustawienie terminu ważności strony
  • Kompresowanie źródła
  • i wiele innych.

Gdy użyjemy wyżej wymienionego sposobu i połączymy go z funkcją header(), może powstać całkiem zadowalający efekt.

Innym sposobem na zabezpieczenie naszego projektu jest posłużenie się Prawem i przypisanie praw autorskich naszemu projektowi. Każdy szanujący innych pracę internauta nie przypisze sobie czyjejś pracy, ale jak wiemy istnieją ewenementy, które bez jakiegokolwiek skrupuły przypiszą sobie naszą pracę. Oczywiście gdy uda nam się takiego człowieka przyłapać - no cóż, mogą wyniknąć z tego dość przykre konsekwencje.

Niezbędne linki:

Autor: Oskar 'wassago' Krawczyk

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (0)
Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2017 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System