I.Wojnicki, Tech.Inter.

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

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

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

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

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

Programowanie w Internecie

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

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

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

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

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

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

Systemy internetowe Wykład 3 PHP

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Internetowe bazy danych

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

Ćwiczenie: JavaScript Cookies (3x45 minut)

Kurs WWW. Paweł Rajba

The OWASP Foundation Session Management. Sławomir Rozbicki.

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Bazy Danych i Usługi Sieciowe

PHP. i komunikacja klient-serwer PAWEŁ RAJBA

Wybrane działy Informatyki Stosowanej

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

Sprawozdanie nr 4. Ewa Wojtanowska

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Aplikacje internetowe - laboratorium

Bezpieczeństwo systemów komputerowych

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

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

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

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

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

Drobne błędy w portalach WWW

Wielozadaniowość w systemie Microsoft Windows

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

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

Sprawozdanie Laboratorium 4

Programowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Aplikacje internetowe i rozproszone - laboratorium


Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Zmienne i stałe w PHP

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Zaawansowane aplikacje internetowe

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

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

Mechanizmy pracy równoległej. Jarosław Kuchta

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Dlaczego PHP? - zalety

O autorze Wprowadzenie...13

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Aplikacje WWW - laboratorium

Dodawanie operacji dodatkowych w WAPRO Mag.

Cookie Policy. 1. Informacje ogólne.

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

Internetowe bazy danych

Aplikacje WWW - laboratorium

PHP: bloki kodu, tablice, obiekty i formularze

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

Czym są pliki cookies?

Smarty PHP. Leksykon kieszonkowy

Tworzenie aplikacji rozproszonej w Sun RPC

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Okna, ramki i ciasteczka

SMS Kod Automatyczny

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Polityka prywatności serwisu

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

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

POLITYKA PRYWATNOŚCI

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

Aplikacje WWW - laboratorium

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

Polityka plików cookies

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

Enterprise JavaBeans (EJB)

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

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Dokumentacja fillup - MS SQL

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

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

Transkrypt:

Igor Wojnicki (AGH, KA) 13 maja 2012 1 / 26 Hypertext Preprocessor Igor Wojnicki Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 13 maja 2012 $Id: php1.tex,v 1.1 2011/11/19 19:14:25 wojnicki Exp wojnicki $

Igor Wojnicki (AGH, KA) 13 maja 2012 2 / 26 Spis Treści 1 Ciastka i sesje

Igor Wojnicki (AGH, KA) 13 maja 2012 3 / 26 Spis Treści 1 Ciastka i sesje

Igor Wojnicki (AGH, KA) 13 maja 2012 4 / 26 Wyścig Problem: Wyścig dwa procesy (lub więcej) żadaj a dostępu do tego samego dzielonego zasobu (pamięć dzielona, plik, obiekt w bazie danych). Tylko jeden może uzyskać dostęp kto pierwszy ten lepszy. Przykłady: dwa procesy zapisuja ten sam plik, atomiczność przy złożonych operacjach odcztytu/zapisu (bazy danych).

Igor Wojnicki (AGH, KA) 13 maja 2012 5 / 26 Wzajemne wykluczenie Wzajemne wykluczenie Mutual Exclusion jeżeli jeden proces używa dzielonego zasobu, żaden inny proces nie może go używać. Sekcja krytyczna Critical Region/Section: część kodu programu realizujaca dostęp do dzielonego zasobu.

Igor Wojnicki (AGH, KA) 13 maja 2012 6 / 26 Problemy Zagłodzenie Zakleszczenie.

Igor Wojnicki (AGH, KA) 13 maja 2012 7 / 26 Warunki dla wzajemnego wykluczenia 1 Tylko jeden proces może realizować sekcje krytyczna. 2 Szybkość sprzętu nie może być brana pod uwagę. 3 Proces poza sekcja krytyczna nie może zablokować innego procesu. 4 Proces nie może w nieskończoność być blokowany przed wejściem do sekcji krytycznej.

Igor Wojnicki (AGH, KA) 13 maja 2012 8 / 26 Sekcja krytyczna, przykład

Igor Wojnicki (AGH, KA) 13 maja 2012 9 / 26 Jak zaimplementować wzajemne wykluczenie w? mutex (semafor binarny) semafor (liczacy) semafor na pliku let the others do np. transakcje w bazach danych

Igor Wojnicki (AGH, KA) 13 maja 2012 10 / 26 Mutex Semafor binarny. Stany: 1 odblokowany, 0 zablokowany. Operacje (atomiczne!): w dół if (stan==1) {stan=0; kontynuuj;} else czekaj w górę stan=1; obudź czekającego

Igor Wojnicki (AGH, KA) 13 maja 2012 11 / 26 Semafor Stan: licznik. Operacje (atomiczne!): w dół if (stan>0) {stan--; kontynuuj;} else czekaj w górę stan++; obudź czekającego

Igor Wojnicki (AGH, KA) 13 maja 2012 12 / 26 Przykład: semafory semafory, sekcja krytyczna define(klucz,123456); $sem=sem_get(klucz); echo Wejscie do sekcji krytycznej<br> ; ob_flush(); flush(); $start=time(); sem_acquire($sem); echo Jestem w sekcji krytycznej<br> ; ob_flush(); flush(); sleep(5); sem_release($sem); echo Wyjscie z sekcji krytycznej<br> ; echo Czas wykoania:.(time()-$start). <br> ;

Igor Wojnicki (AGH, KA) 13 maja 2012 13 / 26 File Locking Kontrola dostepu do plików; semafor: flock() echo Wejscie do sekcji krytycznej<br> ; ob_flush(); flush(); $start=time(); $fp = fopen( semafor, r+ ); if (flock($fp, LOCK_EX)) { echo Jestem w sekcji krytycznej<br> ; ob_flush(); flush(); sleep(5); flock($fp, LOCK_UN); echo Wyjscie z sekcji krytycznej<br> ; echo Czas wykoania:.(time()-$start). <br> ; } else { echo Problemy z blokada...<br> ;} ob_flush(); flush(); fclose($fp);

Igor Wojnicki (AGH, KA) 13 maja 2012 14 / 26 Zakleszczenie, z życia za W.Stallings, Operating Systems

Igor Wojnicki (AGH, KA) 13 maja 2012 15 / 26 Zakleszczenie, z informatyki za W.Stallings, Operating Systems

Zakleszczenie Zbiór procesów jest zakleszczony jeżeli każdy z nich czeka na zdarzenie, które tylko inny proces ze zbioru może spowodować. Zwykle zdarzeniem jest zwolnienie zasobu. Żaden z procesów nie może: kontynuować wykonania, zwolnić zasobu, zostać odblokowanym. Igor Wojnicki (AGH, KA) 13 maja 2012 16 / 26

Igor Wojnicki (AGH, KA) 13 maja 2012 17 / 26 Zakleszczenie, rozwiazanie Dostęp do najwyżej jednego zasobu na raz. Przydział zasobów w określonej (takiej samej) kolejności dla wszystkich procesów.

Igor Wojnicki (AGH, KA) 13 maja 2012 18 / 26 Spis Treści 1 Ciastka i sesje Ciastka i sesje

Ciastka i sesje Igor Wojnicki (AGH, KA) 13 maja 2012 19 / 26 Stan WWW architektura klient-serwer. Bezstanowa. Identyfikacja klienta stanowa: ciastka (cookies), sesja.

Ciastka i sesje Igor Wojnicki (AGH, KA) 13 maja 2012 20 / 26 Cookies Permanentne przechowywanie informacji po stronie przegladarki. Przesyłane w nagłówku HTTP.

Igor Wojnicki (AGH, KA) 13 maja 2012 21 / 26 Obsługa cookies Ciastka i sesje $_COOKIE[ nazwa_ciastka ] setcookie() można użyć jedynie zanim skrypt wygeneruje wyjście

setcookie() Ciastka i sesje setcookie(string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) Po wywołaniu, wartość przesyłana jest do przegladarki. Przy następnym odczycie jest dostępna w $_COOKIE albo $_REQUEST. name nazwa value wartość (opcjonalnie, domyślnie pusty łańcuch znaków) expire data przydatności do spożycia: time() + liczba_sekund, domyślnie 0 koniec sesji przegladarki path ścieżka w jakiej będzie dostępna (/ w całej domenie, albo dla konkretnej ścieżki na serwerze) Unieważnienie: ustawienie odpowiedniej wartości expire Igor Wojnicki (AGH, KA) 13 maja 2012 22 / 26

Ciastka i sesje Igor Wojnicki (AGH, KA) 13 maja 2012 23 / 26 Cookies, dobre rady setcookie() zwraca FALSE jeżeli przesłanie danych w nagłówku HTTP się niepowiodło (wygenerowane wyjście, przed wywołaniem funkcji). htmlspecialchars() oraz htmlspecialchars_decode() do konwersji znaków specjalnych m.in. <, >, apostrof, cudzysłów.

Ciastka i sesje Igor Wojnicki (AGH, KA) 13 maja 2012 24 / 26 Sesja Implementacja stanu aplikacji. Przechowywanie danych pomiędzy wywołaniami skryptów w $_SESSION.

Ciastka i sesje Igor Wojnicki (AGH, KA) 13 maja 2012 25 / 26 session_start() Tworzy sesje, lub przywraca rozpoczęta. Zwraca FALSE jeżeli operacja się nie udała. Dane zapisane/odczytane z $_SESSION$ będa dostępne dla skryptów. Identyfikator sesji przekazywany przez ciastko (albo GET/POST niezalecane).

Ciastka i sesje Igor Wojnicki (AGH, KA) 13 maja 2012 26 / 26 Unieważnienie danych w sesji unset($_session[ moje_dane ]) Dane przechowywane w sesji sa zapisywane po stronie serwera. Fizyczny zapis danych następuje przy zakończeniu działania skrytpu (mozna wymusić wcześniej). Tylko jeden proces może zapisywać/odczytywać dane konkretnej sesji na raz.