Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca



Podobne dokumenty
Technologia Flash cieszy się coraz większą popularnością. Liczba dostępnych

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem


Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Cookies Zewnętrzne - oznacza Cookies zamieszczane przez partnerów Administratora, za pośrednictwem strony internetowej Serwisu.

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Win Admin Monitor Instrukcja Obsługi

Polityka prywatności w serwisie internetowym IPN

POLITYKA PRYWATNOŚCI Konkurs wiedzy dermatologicznej dla lekarzy

System Kancelaris. Zdalny dostęp do danych

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Aplikacje internetowe - laboratorium

Reguły plików cookies witryny i usług internetowych tsop.pl

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Kontrola dostępu w ASP.NET

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Przykład opisu cookies

SMB protokół udostępniania plików i drukarek

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Zasady Wykorzystywania Plików Cookies

Generatory pomocy multimedialnych

Internetowe bazy danych

Aplikacje WWW - laboratorium

Polityka Cookies. 1 Definicje. Administrator oznacza przedsiębiorstwo

Przykładowa konfiguracja konta pocztowego w programie Outlook Express z wykorzystaniem MKS 2k7 (MS Windows 2000 Proessional)

Fundacja Ośrodka KARTA z siedzibą w Warszawie, przy ul. Narbutta 29 ( Warszawa),

Polityka prywatności 1. Definicje Administrator Cookies - Cookies Administratora - Cookies Zewnętrzne - Serwis - Urządzenie - Ustawa Użytkownik -

Sesje i logowanie. 1. Wprowadzenie

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

SPECYFIKACJA WYMAGAŃ. w zakresie migracji i uruchomienia nowego serwisu WWW na potrzeby PKP S.A.

POLITYKA COOKIES. Definicje. Rodzaje wykorzystywanych Cookies

Tomasz Greszata - Koszalin

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Mechanizmy dostępu do bazy danych Palladion / Ulisses. I. Uwierzytelnianie i przyznawanie uprawnień dostępu do aplikacji Palladion

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Tomasz Grześ. Systemy zarządzania treścią

REFERAT O PRACY DYPLOMOWEJ

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

Podstawy technologii WWW

Instrukcja obsługi/instalacji platformy Krok w Przedsiębiorczość Administrator platformy

POLITYKA PRYWATNOŚCI

Deutsche Bank db Makler. Bezpieczne korzystanie z platformy db Makler

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Pomoc dla r.

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Polityka Prywatności

Polityka prywatności serwisów internetowych Narodowego Instytutu Architektury i Urbanistyki (NIAiU) i plików cookies

Usługi sieciowe systemu Linux

Kancelaria Prawna.WEB - POMOC

PROFINETSET narzędzie konfiguracyjne dla sieci PROFINET

Polityka prywatności

Niniejsza POLITYKA PRYWATNOŚCI określa zasady przechowywania i dostępu do informacji na

11. Autoryzacja użytkowników

Instalacja krok po kroku /instalacja programu, serwera bazy danych/

POLITYKA PRYWATNOŚCI SERWIS:

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl

W poprzednim odcinku poznaliśmy: W poprzednim odcinku, cd.: W dzisiejszym odcinku. Apache serwer WWW (część 2)

Praca w sieci równorzędnej

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Stosowanie ciasteczek (cookies)

Apache serwer WWW (część 2) Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Linux -- u mnie działa!

Program kadrowo płacowy - wersja wielodostępna z bazą danych Oracle SQL Server 8 lub 9

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Komentarz technik teleinformatyk 312[02]-04 Czerwiec 2009

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Platforma e-learningowa

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji:

Polityka prywatności. Obowiązująca do dnia r.

Rejestracja użytkownika Bentley Często zadawane pytania techniczne

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

Sklep internetowy wtspartner.pl dokłada wszelkich starań, aby prowadzony serwis ułatwiał każdemu użytkownikowi

Instrukcja obsługi programu do wystawiania faktur wewnętrznych dla Subiekta GT

ZAKŁADANIE POCZTY ELEKTRONICZNEJ - na przykładzie serwisu

Polityka Prywatności*

Niezbędne narzędzia. Przed rozpoczęciem pracy z PHP należy zainstalować odpowiednie narzędzia: środowisko PHP serwer WWW serwer baz danych MySQL

DOKUMENTACJA INTERFEJSU API - HTTPS

(Pluggable Authentication Modules). Wyjaśnienie technologii.

Polityka prywatności woda.krakow.pl

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 ZASADY OCENIANIA

FTP przesył plików w sieci

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

ZAŁĄCZNIK NR 1 DO REGULAMINU SERWISU ZNANEEKSPERTKI.PL POLITYKA OCHRONY PRYWATNOŚCI

Pracownia internetowa w szkole ZASTOSOWANIA

Problemy techniczne. Jak udostępnić dane na potrzeby wykonania usługi wdrożeniowej? Zabezpieczanie plików hasłem

Polityka Cookies I. DEFINICJE

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi.

Forum Client - Spring in Swing

Referat pracy dyplomowej

IBM SPSS Statistics Wersja 25. Windows Instrukcja instalacji (licencja autoryzowanego użytkownika) IBM

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Transkrypt:

Uwierzytelnianie w PHP 01 Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca stron internetowych, jest identyfikacja i uwierzytelnienie uprzywilejowanego użytkownika. Od zaprojektowania poprawnego systemu ograniczenia dostępu do zastrzeżonych treści i narzędzi często zależy powodzenie całego przedsięwzięcia, jakim jest stworzenie serwisu internetowego. Należy przy tym pamiętać, że system musi być z jednej strony bezpieczny, ale z drugiej funkcjonalny. Nie sposób wyobrazić sobie serwis, który ciągle żąda od użytkownika identyfikacji oraz wpisywania loginu i hasła przy wysyłaniu każdego kolejnego żądania. Ponieważ każde zagadnienie najlepiej jest zgłębiać od podstaw, w artykule najpierw omówimy mechanizm uwierzytelniania wbudowany w HTTP, a potem zbudujemy prosty system kontroli sesji za pomocą PHP. Podstawowa metoda uwierzytelniania (protokół HTTP) 03 Autoryzacja HTTP z poziomu PHP 09 Fazy procesu uwierzytelniania 12 Protokół HTTPS 12 Tworzenie sesji i jej zabezpieczenie 16 Bezpieczne przechowywanie danych sesji 18 O czym warto pamiętać 38 BBP 404 autor marcin Hubert informatyk, programista PHP Małopolskie Kuratorium Oświaty Instalacja i konfiguracja Zastosowania Kompendium Narzędzia

02 Uwierzytelnianie w PHP Zanim zaczniemy projektować nasz system kontroli sesji w PHP, odpowiedzmy sobie na pytanie, czym jest uwierzytelnianie. To hierarchia warunków i czynności koniecznych do ich spełnienia (nie jest to ścisła definicja!) mająca na celu potwierdzenie tożsamości użytkownika. Zagadnienie uwierzytelniania jest tak podstawowe, że zostało zaimplementowane już na poziomie protokołu HTTP. Korzystając wyłącznie z plików.htaccess, możemy ograniczać dostęp do wybranych katalogów lub dokumentów, udostępniając ich zawartość tylko tym osobom, które znają właściwy login oraz hasło. Login i hasło stanowią parę będącą czymś w rodzaju elektronicznej legitymacji członkowskiej, dającej posiadaczowi prawo dostępu do chronionych zasobów. Uwierzytelnianie z poziomu protokołu HTTP jest proste i skuteczne, jednak zapewnia tylko absolutne minimum funkcjonalności i dlatego ma ograniczone zastosowania. Stosowanie języka PHP daje twórcom serwisów znacznie więcej możliwości. Jednak wszystko ma swoją cenę: większa funkcjonalność to także furtka dla przeprowadzania ataków mających na celu zawładnięcie elektroniczną osobowością użytkownika i uzyskanie przez włamywacza dostępu do poufnych danych. Dlatego zgodnie z podaną przeze mnie definicją proces uwierzytelniania stanowi całą hierarchię warunków, które należy spełnić, aby zostać uznanym za osobę wiarygodną z odpowiednio wysokim stopniem prawdopodobieństwa. Jednak zawsze należy pamiętać, że żadne metody nie są w stanie zapewnić nam całkowitego bezpieczeństwa. Im bardziej złożony system zabezpieczeń, tym większej determinacji i wiedzy wyma-

Uwierzytelnianie w PHP 03 ga jego obejście, żaden nie stanowi jednak bariery nie do pokonania. Ponadto zagrożeniem są nie tylko próby pokonania systemu zabezpieczeń z zewnątrz. Wszelkie tego typu systemy są bardzo narażone na błędy programistów, także w samej swojej logicznej warstwie (częste są omyłki, polegające na tym, że pewna sekwencja zdarzeń w systemie powoduje uwiarygodnienie użytkownika, który podał błędne hasło lub nieistniejący login). Podstawowa metoda uwierzytelniania Protokół HTTP posiada wbudowany mechanizm pozwalający przeprowadzić uwierzytelnianie. Omówimy sposób jego wykorzystania na przykładzie modułu mod_auth serwera Apache, który jest instalowany domyślnie wraz z serwerem. Serwer korzysta z plików.htaccess, które można umieszczać w dowolnych katalogach. Pliki te pozwalają na wprowadzanie dodatkowych opcji konfiguracyjnych, obowiązujących jedynie w danym katalogu wraz z jego podkatalogami. Jednym spośród wielu zastosowań tych plików jest ograniczanie dostępu do wybranego katalogu. Serwer zezwala na dostęp jedynie uwierzytelnionym użytkownikom. Ponieważ uwierzytelnianie polega na porównaniu wprowadzonego loginu i przypisanego do niego zaszyfrowanego hasła z przechowywanym wzorem, zaczniemy od przygotowania pliku zawierającego informacje o użytkownikach uprawnionych do uzyskiwania dostępu do danego katalogu. Loginy i hasła można przechowywać w pliku o dowolnej nazwie. Tradycyjnie stosuje się nazwę.htpass, ponieważ w domyślnej konfiguracji serwer Pierwsza linia obrony plik.htaccess

04 Uwierzytelnianie w PHP nie udostępnia zawartości plików zaczynających się od prefiksu.ht. Ale nie ma powodu, aby nie stosować własnych nazw. To nie nazwa, a lokalizacja pliku ma podstawowe znaczenie. Plik ten nie może być umieszczony w chronionym hasłem katalogu, gdyż serwer nie pozwoliłby na odczytanie jego zawartości w celu porównania wprowadzonych przez użytkownika danych. Najprostszym rozwiązaniem jest umieszczenie go tuż powyżej chronionego katalogu. Jest to jednak ryzykowne, szczególnie gdy nazwa naszego pliku nie zaczyna się od.ht, ponieważ tak zlokalizowany plik mógłby zostać odczytany. Dlatego należy koniecznie umieścić go poza drzewem katalogów serwera WWW, aby uniemożliwić jego pobranie za pomocą serwera. Jeśli przyjmiemy, że katalog /home/marcin/www jest podlinkowany jako główny katalog serwera /, to plik.htpass (lub inny) możemy umieścić np. w naszym katalogu domowym: /home/ marcin/.htpass. Wygenerowanie takiego pliku jest bardzo łatwe: korzystamy z narzędzia htpasswd dołączonego do serwera Apache. Przykład utworzenie nowego pliku z hasłami o nazwie plik_hasel: > htpasswd -bc plik_hasel marcin Haslo Adding password for user marcin Opcja -bc powoduje utworzenie nowego, lub zamazanie starego pliku o podanej nazwie. W pliku tym zostanie zapisana para user:password w postaci zwykłego tekstu. Oczywiście hasło zostało zahaszowane algorytmem md5 (domyślnie). W naszym przykładzie po otwarciu pliku plik_hasel w dowolnym edytorze zobaczymy: marcin:wgtmz.tpacahc

Niedostępne w wersji demonstracyjnej. Zapraszamy do zakupu pełnej wersji książki w serwisie