Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Podobne dokumenty
Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

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

I.Wojnicki, Tech.Inter.

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

Programowanie w Internecie

Aplikacje internetowe - laboratorium

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Sesje - Podstawy PHP. Sesje. Artykuł pobrano ze strony eioba.pl. Wprowadzenie do sesji. Prosta autoryzacja użytkowników

HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika

Aplikacje WWW - laboratorium

Przekazywanie danych. Dane zewnętrzne mogą pochodzić z róŝnych źródeł:

Kurs WWW. Paweł Rajba

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Ćwiczenie: JavaScript Cookies (3x45 minut)

Serwery aplikacji. dr Radosław Matusik. radmat

Sprawozdanie nr 4. Ewa Wojtanowska

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

The OWASP Foundation Session Management. Sławomir Rozbicki.

Internetowe bazy danych

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT SITE ANALYZER 2.7.1

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

Systemy internetowe Wykład 3 PHP

Internetowe bazy danych

Zmienne i stałe w PHP

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT CEIDG MONITOR

Stosowanie ciasteczek (cookies)

Dokumentacja SMS przez FTP

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT MAILER 2.2.0

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

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

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

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

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Zarządzanie sesją w aplikacjach Internetowych. Kraków, Paweł Goleń

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Baza danych do przechowywania użytkowników

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

II. RODZAJE PLIKÓW COOKIES

Sesje i logowanie. 1. Wprowadzenie

Backend Administratora

Polityka cookies w serwisie internetowym

Bezpieczeństwo systemów komputerowych

Dokumentacja smsapi wersja 1.4

6. Bezpieczeństwo przy współpracy z bazami danych

Cookie Policy. 1. Informacje ogólne.

Aktualizacja SMSFall v Data publikacji:

Konfiguracja programu MS Outlook 2007 dla poczty w hostingu Sprint Data Center

Należy ściągnąć oprogramowanie Apache na platformę

Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniach w następujący sposób:

Wykład 5: PHP: praca z bazą danych MySQL

Smarty PHP. Leksykon kieszonkowy

PHP. i komunikacja klient-serwer PAWEŁ RAJBA

Polityka prywatności dla strony ELCEN Sp. z o.o. z siedzibą w Gdyni

POLITYKA PRYWATNOŚCI SERWIS:

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie

Gatesms.eu Mobilne Rozwiązania dla biznesu

Cemarol Sp. z o.o. Polityka prywatności (pliki cookies) 1. Informacje ogólne.

Wprowadzenie do Internetu Zajęcia 5

POLITYKA PLIKÓW COOKIES

Polityka prywatności serwisu

Certyfikat. 1 Jak zbieramy dane?

Bazy Danych i Usługi Sieciowe

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

Wdrożenie modułu płatności eservice. dla systemu Magento

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Internetowy serwis Era mail Aplikacja sieci Web

O autorze Wprowadzenie...13

II. PRZETWARZANIE DANYCH OSOBOWYCH:

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

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Usługi sieciowe systemu Linux

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Funkcje dodatkowe. Wersja 1.2.1

Instrukcja konfiguracji funkcji skanowania

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Baza numerów Wersja 1.1

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

TECHBYTE FACEBOOK BOT PACK

POLITYKA PRYWATNOŚCI I WYKORZYSTYWANIA PLIKÓW COOKIES W SERWISACH INTERNETOWYCH GoPay Sp. z o.o.

Wykorzystywanie plików cookies

Dokumentacja fillup - MS SQL

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

POLITYKA PRYWATNOŚCI ORAZ POLITYKA PLIKÓW COOKIES W Sowa finanse

ibok Internetowe Biuro Obsługi Klienta

Podstawy technologii WWW

Polityka prywatności

Obowiązek informacyjny RODO

, NO 556 NATHAN ROAD, MONGKOK, KOWLOON, HONG KONG. KRS: o

4. Podstawowa konfiguracja

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Dokumentacja Użytkownika Systemu. Konfiguracja konta

Transkrypt:

Sesje i ciasteczka

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji na stronie internetowej (logowanie, koszyk zakupowy itp.). Mechanizm sesji w PHP jest zaimplementowany przez zaszyfrowany, losowy identyfikator sesji (SID). Może on być przechowywany w komputerze klienta w postaci pliku cookie lub przekazywany przez adres strony. Na serwerze są przechowywane zmienne sesji, czyli takie, które są powiązane z określoną sesją danego użytkownika i przez cały czas jej trwania można do nich uzyskać dostęp.

Ciasteczka Ciasteczko (ang. cookie) to niewielki zestaw informacji, które są zapisywane na komputerze klienta najczęściej w formie pliki tekstowego na dysku twardym. Aby utworzyć cookie na komputerze użytkownika wystarczy wysłać następujący nagłówek HTTP: Set-Cookie: NAZWA=WARTOSC; [expires=data;] [path=sciezka;] [domain=nazwa_domeny;] [secure] Ciasteczko powinno być przesłane przed innymi nagłówkami.

Ciasteczka c.d. nazwa=wartość - Wartość ta jest jedynym wymaganym atrybutem przy wysyłaniu ciasteczka. Składa się z dowolnych znaków z wyjątkiem średników, przecinków, białych spacji i ukośników (/). Jeśli zajdzie potrzeba ich użycia, najczęściej koduje się je w formacie odpowiednim dla URL (%XX), gdzie XX to kod ASCI znaku (np. %2F to zakodowana postać ukośnika, a %20 spacji). expires=data - Atrybut expires informuje przeglądarkę o dacie wygaśnięcia danego ciasteczka. Zostanie ono usunięte z dysku, gdy jego data ważności zostanie przekroczona. Jeśli nie podano daty wygaśnięcia, to ciasteczko zostanie skanowane na koniec danej sesji. path i domain - Określają dla jakiej ścieżki i dla jakiej domeny ważne jest dane ciasteczko. secure - Ten parametr nie posiada wartości. Jeśli zostanie podany, to ciasteczko będzie widoczne (wysłane) tylko wtedy gdy połączenie będzie szyfrowane

Ciasteczka c.d Właściwości ciasteczek: Ciasteczka o tej samej nazwie ale o innych ścieżkach będą nadpisywane. W celu skasowania należy wysłać ciasteczko o takiej samej nazwie i czasie wygaśnięcia z minioną datą. Możliwe jest wysyłanie kilku ciasteczek w jednym nagłówku (poprzez kilka atrybutów Set-Cookie). Istnieją limity przy zapisywaniu ciasteczek na dysku (po ich przekroczeniu przeglądarka zwykle usuwa starsze ciasteczka). maksymalna liczba ciasteczek: 300. maksymalna wielkość ciasteczka: 4 kilobajty. maksymalna liczba ciasteczek z jednego serwera lub z jednej ścieżki: 20. Należy uważać z obsługą ciasteczek jeśli występuje również serwer proxy.

Tworzenie ciasteczek w PHP Ciasteczka z poziomu PHP mogą zostać ustawione (stworzone) za pomocą funkcji setcookie: bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) gdzie httponly ciasteczka będą dostępne tylko dla protokołu http. Żadne języki skryptowe nie mają do nich dostępu. Kiedy do serwera przekazywane jest żądanie GET, przeglądarka w pierwszej kolejności szuka ciasteczka przechowywanego lokalnie i jeśli znajdzie odpowiednie to przekazuje jego wartość do serwera.

Cookie i sesje PHP domyślnie stosuje ciasteczka w sesji. Gdy to możliwe, w ciasteczku będzie przechowywany identyfikator sesji. Można również dołączyć identyfikator sesji do adresu URL. Przez ustawienie na serwerze dyrektywy session. use_trans_sid ta metoda staje się metodą domyślną, ale nie jest do zalecane bo obniża poziom bezpieczeństwa. Identyfikator sesji przechowywany jest w stałej SID. Można go przekazywać dalej w linkach dodając go na końcu łącza: <A HREF="link.php?<?php echo (SID);?>">

Cookie i sesje W normalnych warunkach identyfikator sesji jest przekazywany za pomocą tworzonego automatycznie ciasteczka. Czyli: Ustawienia serwera pozwalają na ciasteczka Użytkownik ma włączoną obsługę ciasteczek Jeśli nie, to do każdego kompletu danych (przesyłanych metodami GET lub POST) zostanie dodana zmienna PHPSESSID i za jej pomocą zostanie przekazana wartość identyfikatora sesji.

PHPSESSID http://blog.bexlab.pl/sesje-ciasteczka-i-phpsessid/50/

Etapy sesji Sesja składa się z 4 podstawowych etapów: 1. Rozpoczynanie sesji. 2. Zgłaszanie zmiennych sesji. 3. Korzystanie ze zmiennych sesji. 4. Usuwanie zmiennych i niszczenie sesji. Rozpoczynanie sesji można zrealizować na 2 sposoby: Używając funkcji session_start(); Sprawdza ona istnienie identyfikatora sesji i jeśli on istnieje funkcja pobierze zmienne sesji by można było z nich korzystać. Jeśli identyfikator nie istnieje to zostanie utworzony nowy wraz z tablicą sesji $_SESSION. Funkcja session_start() powinna być wywoływana na początku każdego skryptu korzystającego z sesji. Konfiguracja PHP (za pomocą opcji session.autostart) by automatycznie rozpoczynał sesji, gdy ktoś odwiedza daną stronę. Wówczas jednak nie można przechowywać obiektów w sesji!

Zgłaszanie zmiennych sesji Zmienne sesji są przechowywane w tablicy superglobalnej $_SESSION; Aby utworzyć zmienną sesji należy ustawić w tej tablicy żądany element np. $_SESSION[ nick ] = 5; Utworzona zmienna będzie dostępna do końca sesji, chyba że zostanie wcześniej usunięte ręcznie. Sesja może również wygasnąć automatycznie poprzez działanie dyrektywy session.gc_maxlifetime.

Stosowanie i niszczenie zmiennych sesji Aby uzyskać dostęp do zmiennej sesyjnej korzystamy znowu z tablicy $_SESSION np. $war1 = $_SESSION[ nick ]; Aby bezpośrednio usunąć zmienną sesji wykorzystujemy funkcję unset np. unset($_session[ nick ]); Aby usunąć wszystkie zmienne sesji należy wykonać polecenie: $_SESSION=array(); Gdy wykonano wszystkie działania w sesji należy usunąć wszystkie zmienne po czym wywołać session_destroy() by usunąć identyfikator sesji.

Sesje czy bezpieczne? Zależy Wireshark i ARP Spoofing I mamy Session HiJacked

Gotowy przykład 1. <?php 2. session_start(); 3. if(!isset($_session['licznik'])) { 4. $_SESSION['licznik'] = 0; } 5. $_SESSION['licznik']++; 6. echo 'Odwiedziłeś już '.$_SESSION['licznik'].' podstron!'; 7.?>

Proste logowanie z bazą MySQL Kod inspirowany WikiBooksami: http://pl.wikibooks.org/wiki/php/sesje

Proste logowanie z bazą MySQL

Proste logowanie z bazą MySQL

Proste logowanie z bazą MySQL

Proste logowanie z bazą MySQL

Session Fixation 1. <?php session_start(); 2. if (!isset($_session['inicjuj'])) { 1. session_regenerate_id(); 2. $_SESSION['inicjuj'] = true; 3. }?> Podanie nieistniejącego identyfikatora sesji spowoduje jego utworzenie. Dzięki temu możemy ustawić taki identyfikator, jaki nas interesuje i podsyłamy atakowanemu aby się zalogował w serwisie. Do adresu URL doczepiany jest ciąg?phpsessid=abcdef. Kiedy użytkownik posłusznie się zaloguje, jest zdany na naszą łaskę.

Session Hijacking 1. <?php session_start(); 2. if (!isset($_session['inicjuj'])) { 1. session_regenerate_id(); 2. $_SESSION['inicjuj'] = true; 3. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; } 3. if($_session['ip']!= $_SERVER['REMOTE_ADDR']) { 4. die('proba przejecia sesji udaremniona!'); 5. }?> Przy tworzeniu nowej sesji, dzięki funkcji session_regenerate_id() mamy pewność, że sesja dostanie losowy ID. ID nadal może zostać wykradziony. Wystarczy, że jakiś ciamajda skopiuje znajomemu link do jakiegoś zasobu, mając przy tym wyłączone ciastka. Oczywiście w linku znajdzie się wtedy jego LOSOWY identyfikator sesji, który w ten sposób zostanie ujawniony przed światem.

Pliki.htaccess Plik.htaccess pozwala na pewne zmiany w konfiguracji serwera. Zmiany te są widoczne tylko w podkatalogach i katalogu, w którym ten plik się znajduje. Za pomocą pliku.htaccess można zmieniać/konfigurować niektóre dyrektywy Apache lub też ustawienia PHP bez konieczności grzebania w plikach konfiguracyjnych serwera. http://www.tidnab.nowaruda.net/linux/261/pliki-konfiguracyjne-htaccess.html

Pliki.htaccess http://www.tidnab.nowaruda.net/linux/261/pliki-konfiguracyjne-htaccess.html

Pliki.htaccess ograniczenie hasłem http://www.tools.dynamicdrive.com/password/ http://www.tidnab.nowaruda.net/linux/261/pliki-konfiguracyjne-htaccess.html

Pliki.htaccess strony błędów http://www.tidnab.nowaruda.net/linux/261/pliki-konfiguracyjne-htaccess.html

Pliki.htaccess strony błędów

Pliki.htaccess listowanie plików http://www.tidnab.nowaruda.net/linux/261/pliki-konfiguracyjne-htaccess.html

Pliki.htaccess blokowanie strony http://www.tidnab.nowaruda.net/linux/261/pliki-konfiguracyjne-htaccess.html

Pliki.htaccess ustawienia PHP http://www.tidnab.nowaruda.net/linux/261/pliki-konfiguracyjne-htaccess.html

Pliki.htaccess mod_rewrite http://sf.jogger.pl/2007/05/02/mod-rewrite-w-przykladach/

Pliki.htaccess mod_rewrite http://sprawnymarketing.pl/artykuly/mod-rewrite/ http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#rewriterule

Pliki.htaccess zmiana MimeType http://magazynt3.pl/htaccess-bez-tajemnic-sztuczki-z-serwerem-apache/

Pliki.htaccess zmiana MimeType http://magazynt3.pl/htaccess-bez-tajemnic-sztuczki-z-serwerem-apache/