Wykład11PHP szczegółyintymne,str1 Udostępnianie klientom zasobów serwera SERWER programy w PHP
Wykład11PHP szczegółyintymne,str1 Udostępnianie klientom zasobów serwera KLIENT SERWER programy w PHP witryny HTML
Wykład11PHP szczegółyintymne,str1 Udostępnianie klientom zasobów serwera KLIENT witryny HTML KLIENT SERWER programy w PHP witryny HTML
Wykład11PHP szczegółyintymne,str1 Udostępnianie klientom zasobów serwera KLIENT KLIENT witryny HTML KLIENT SERWER programy w PHP witryny HTML witryny HTML
Wykład11PHP szczegółyintymne,str1 Udostępnianie klientom zasobów serwera KLIENT KLIENT witryny HTML KLIENT SERWER programy w PHP witryny HTML KLIENT witryny HTML witryny HTML
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki Serwer dysponuje mocami obliczeniowymi i zasobami danych niedostępnymi bezpośrednio klientom; klient dysponuje tylko przeglądarką HTML
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki Serwer dysponuje mocami obliczeniowymi i zasobami danych niedostępnymi bezpośrednio klientom; klient dysponuje tylko przeglądarką HTML
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki Serwer dysponuje mocami obliczeniowymi i zasobami danych niedostępnymi bezpośrednio klientom; klient dysponuje tylko przeglądarką HTML Przykład z udostępnianiem klientom działania programu gnuplot był naiwny, ale podobnie mogą być udostępniane poważniejsze usługi
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki Serwer dysponuje mocami obliczeniowymi i zasobami danych niedostępnymi bezpośrednio klientom; klient dysponuje tylko przeglądarką HTML Przykład z udostępnianiem klientom działania programu gnuplot był naiwny, ale podobnie mogą być udostępniane poważniejsze usługi Zamiast programu gnuplot, serwer najczęściej obsługuje bazę danych;dlategoczęstouważasię,żephpmazwiązekzsql językiem programowania baz danych
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki Serwer dysponuje mocami obliczeniowymi i zasobami danych niedostępnymi bezpośrednio klientom; klient dysponuje tylko przeglądarką HTML Przykład z udostępnianiem klientom działania programu gnuplot był naiwny, ale podobnie mogą być udostępniane poważniejsze usługi Zamiast programu gnuplot, serwer najczęściej obsługuje bazę danych;dlategoczęstouważasię,żephpmazwiązekzsql językiem programowania baz danych
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki Serwer dysponuje mocami obliczeniowymi i zasobami danych niedostępnymi bezpośrednio klientom; klient dysponuje tylko przeglądarką HTML Przykład z udostępnianiem klientom działania programu gnuplot był naiwny, ale podobnie mogą być udostępniane poważniejsze usługi Zamiast programu gnuplot, serwer najczęściej obsługuje bazę danych;dlategoczęstouważasię,żephpmazwiązekzsql językiem programowania baz danych Współpraca klienta z serwerem jest wrażliwa na ataki, musi więc być oprogramowana z troską o bezpieczeństwo
Wykład11PHP szczegółyintymne,str2 Udostępnianie klientom zasobów serwera Serwer wykonuje obliczenia zlecone przez klienta i odsyła mu wyniki Serwer dysponuje mocami obliczeniowymi i zasobami danych niedostępnymi bezpośrednio klientom; klient dysponuje tylko przeglądarką HTML Przykład z udostępnianiem klientom działania programu gnuplot był naiwny, ale podobnie mogą być udostępniane poważniejsze usługi Zamiast programu gnuplot, serwer najczęściej obsługuje bazę danych;dlategoczęstouważasię,żephpmazwiązekzsql językiem programowania baz danych Współpraca klienta z serwerem jest wrażliwa na ataki, musi więc być oprogramowana z troską o bezpieczeństwo
Niezabezpieczona witryna Wykład11PHP szczegółyintymne,str3 strona fikcyjnej firmy
Wykład11PHP szczegółyintymne,str4 Niezabezpieczona witryna cz PHP-owa <?php define("haslo","01234"); if(isset($request[ haslo ])) { if($ REQUEST[ haslo ] == constant("haslo")) { print("<span style= background-color:#aaffaa; font-size:120% >"); print("<b>masz uprawnienia administratora</b>"); print("</span><br>\n"); else { print("<span style= background-color:#ffaaaa; font-size:120% >"); print("<b>nie masz uprawnien administratora</b>"); print("</span><br>\n"); if(isset($request["co"])) include$request["co"];?>
Wykład11PHP szczegółyintymne,str4 Niezabezpieczona witryna cz PHP-owa <?php define("haslo","01234"); if(isset($request[ haslo ])) { if($ REQUEST[ haslo ] == constant("haslo")) { print("<span style= background-color:#aaffaa; font-size:120% >"); print("<b>masz uprawnienia administratora</b>"); print("</span><br>\n"); else { print("<span style= background-color:#ffaaaa; font-size:120% >"); print("<b>nie masz uprawnien administratora</b>"); print("</span><br>\n"); if(isset($request["co"])) include$request["co"];?>
Wykład11PHP szczegółyintymne,str5 Niezabezpieczona witryna cz HTML-owa <h1>ofermol z oo</h1> <p> Co chcesz o nas wiedziec?-- kliknij: <form action="ofermolphp" method="post"> <input type="radio" name="co" value="ofertaphp"> NASZA OFERTA<br> <input type="radio" name="co" value="kontaktphp"> KONTAKT DO NAS<br> <input type="submit" value="info"> </form><br> </p> <p> Jesli jestes administratorem, podaj haslo: <form action="ofermolphp" method="post"> <input type="text" name="haslo"><br> <input type="submit" value="zaloguj"> </form> </p>
Wykład11PHP szczegółyintymne,str5 Niezabezpieczona witryna cz HTML-owa <h1>ofermol z oo</h1> <p> Co chcesz o nas wiedziec?-- kliknij: <form action="ofermolphp" method="post"> <input type="radio" name="co" value="ofertaphp"> NASZA OFERTA<br> <input type="radio" name="co" value="kontaktphp"> KONTAKT DO NAS<br> <input type="submit" value="info"> </form><br> </p> <p> Jesli jestes administratorem, podaj haslo: <form action="ofermolphp" method="post"> <input type="text" name="haslo"><br> <input type="submit" value="zaloguj"> </form> </p> Najlepsze w kraju gwajdolnice, murkwie i patochlony!
Wykład11PHP szczegółyintymne,str5 Niezabezpieczona witryna cz HTML-owa <h1>ofermol z oo</h1> <p> Co chcesz o nas wiedziec?-- kliknij: <form action="ofermolphp" method="post"> <input type="radio" name="co" value="ofertaphp"> NASZA OFERTA<br> <input type="radio" name="co" value="kontaktphp"> KONTAKT DO NAS<br> <input type="submit" value="info"> </form><br> </p> <p> Jesli jestes administratorem, podaj haslo: <form action="ofermolphp" method="post"> <input type="text" name="haslo"><br> <input type="submit" value="zaloguj"> </form> </p> Najlepsze w kraju gwajdolnice, murkwie i patochlony! 01-234 Berdyczow
Wykład11PHP szczegółyintymne,str6 Niezabezpieczona witryna atak Plik atakphp: <?php print("haslo:"haslo);?>
Wykład11PHP szczegółyintymne,str6 Niezabezpieczona witryna atak Plik atakphp: <?php print("haslo:"haslo);?> Wpisać do przeglądarki adres: http://serwer/ofermolphp?co=atakphp
Wykład11PHP szczegółyintymne,str6 Niezabezpieczona witryna atak Plik atakphp: <?php print("haslo:"haslo);?> Wpisać do przeglądarki adres: http://serwer/ofermolphp?co=atakphp Ten atak jest niepoważny, dopóki plik atakphp znajduje się na serwerze Ale include potrafi dołączyć do pliku PHP również fragmenty, umieszczone gdziekolwiek indziej; np u napastnika
Wykład11PHP szczegółyintymne,str6 Niezabezpieczona witryna atak Plik atakphp: <?php print("haslo:"haslo);?> Wpisać do przeglądarki adres: http://serwer/ofermolphp?co=atakphp Ten atak jest niepoważny, dopóki plik atakphp znajduje się na serwerze Ale include potrafi dołączyć do pliku PHP również fragmenty, umieszczone gdziekolwiek indziej; np u napastnika
Wykład11PHP szczegółyintymne,str6 Niezabezpieczona witryna atak Plik atakphp: <?php print("haslo:"haslo);?> Wpisać do przeglądarki adres: http://serwer/ofermolphp?co=atakphp Ten atak jest niepoważny, dopóki plik atakphp znajduje się na serwerze Ale include potrafi dołączyć do pliku PHP również fragmenty, umieszczone gdziekolwiek indziej; np u napastnika To jest bardzo znana luka w bezpieczeństwie(tzw wstrzykiwanie kodu code injection), więc możliwość inkludowania plików nielokalnych jest wyłączona na większości serwerów PHP
Wykład11PHP szczegółyintymne,str6 Niezabezpieczona witryna atak Plik atakphp: <?php print("haslo:"haslo);?> Wpisać do przeglądarki adres: http://serwer/ofermolphp?co=atakphp Ten atak jest niepoważny, dopóki plik atakphp znajduje się na serwerze Ale include potrafi dołączyć do pliku PHP również fragmenty, umieszczone gdziekolwiek indziej; np u napastnika To jest bardzo znana luka w bezpieczeństwie(tzw wstrzykiwanie kodu code injection), więc możliwość inkludowania plików nielokalnych jest wyłączona na większości serwerów PHP
Logowanie i hasła Wykład11PHP szczegółyintymne,str7 HTML: <form action="loginphp"> Uzytkownik: <input type="text" name="user"><br> Haslo: <input type="text" name="pass"><br> <input type="submit" value="juz"> </form>
Logowanie i hasła Wykład11PHP szczegółyintymne,str7 HTML: <form action="loginphp"> Uzytkownik: <input type="text" name="user"><br> Haslo: <input type="text" name="pass"><br> <input type="submit" value="juz"> </form>
Logowanie i hasła Wykład11PHP szczegółyintymne,str7 HTML: <form action="loginphp"> Uzytkownik: <input type="text" name="user"><br> Haslo: <input type="text" name="pass"><br> <input type="submit" value="juz"> </form>
Logowanie i hasła Wykład11PHP szczegółyintymne,str7 HTML: <form action="loginphp"> Uzytkownik: <input type="text" name="user"><br> Haslo: <input type="text" name="pass"><br> <input type="submit" value="juz"> </form> ŹLE! wszyscy widzą hasło
Logowanie i hasła Wykład11PHP szczegółyintymne,str8 HTML: <form action="loginphp"> Uzytkownik: <input type="text" name="user"><br> Haslo: <input type="password" name="pass"><br> <input type="submit" value="juz"> </form>
Logowanie i hasła Wykład11PHP szczegółyintymne,str8 HTML: <form action="loginphp"> Uzytkownik: <input type="text" name="user"><br> Haslo: <input type="password" name="pass"><br> <input type="submit" value="juz"> </form>
Logowanie i hasła Wykład11PHP szczegółyintymne,str8 HTML: <form action="loginphp"> Uzytkownik: <input type="text" name="user"><br> Haslo: <input type="password" name="pass"><br> <input type="submit" value="juz"> </form> DOBRZE!
Logowanie i hasła Wykład11PHP szczegółyintymne,str9 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& $REQUEST[ pass ]=="ab1cd2") { wpuścić else { niewpuścić else { jeszczeniezalogowane
Logowanie i hasła Wykład11PHP szczegółyintymne,str9 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& $REQUEST[ pass ]=="ab1cd2") { wpuścić else { niewpuścić else { jeszczeniezalogowane
Logowanie i hasła Wykład11PHP szczegółyintymne,str9 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& $REQUEST[ pass ]=="ab1cd2") { wpuścić else { niewpuścić else { jeszczeniezalogowane Hasło na serwerze zapisane jawnie
Logowanie i hasła Wykład11PHP szczegółyintymne,str9 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& $REQUEST[ pass ]=="ab1cd2") { wpuścić else { niewpuścić else { jeszczeniezalogowane Hasło na serwerze zapisane jawnie Haker może przejąć hasła wszystkich klientów i zalogować się z ich uprawnieniami
Logowanie i hasła Wykład 11 PHP szczegóły intymne, str 10 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& crypt($ REQUEST[ pass ],"st") =="st4x5m0nyiree") { wpuścić else { niewpuścić else { jeszczeniezalogowane
Logowanie i hasła Wykład 11 PHP szczegóły intymne, str 10 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& crypt($ REQUEST[ pass ],"st") =="st4x5m0nyiree") { wpuścić else { niewpuścić else { jeszczeniezalogowane Hasła na serwerze zakodowane funkcją crypt(,"st")
Logowanie i hasła Wykład 11 PHP szczegóły intymne, str 10 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& crypt($ REQUEST[ pass ],"st") =="st4x5m0nyiree") { wpuścić else { niewpuścić else { jeszczeniezalogowane Hasła na serwerze zakodowane funkcją crypt(,"st") Nawet po zdobyciu wszystkich zakodowanych haseł, haker nie będzie mógł się zalogować
Logowanie i hasła Wykład 11 PHP szczegóły intymne, str 10 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& crypt($ REQUEST[ pass ],"st") =="st4x5m0nyiree") { wpuścić else { niewpuścić else { jeszczeniezalogowane Hasła na serwerze zakodowane funkcją crypt(,"st") Nawet po zdobyciu wszystkich zakodowanych haseł, haker nie będzie mógł się zalogować Ale jeśli klient zapomni hasła, to administrator serwera nie może mu go przypomnieć; może tylko pozwolić mu na ustalenie nowego hasła
Logowanie i hasła Wykład 11 PHP szczegóły intymne, str 10 PHP: if(isset($ REQUEST[ user ])&& isset($ REQUEST[ pass ])) if($ REQUEST[ user ] =="Kasia"&& crypt($ REQUEST[ pass ],"st") =="st4x5m0nyiree") { wpuścić else { niewpuścić else { jeszczeniezalogowane Hasła na serwerze zakodowane funkcją crypt(,"st") Nawet po zdobyciu wszystkich zakodowanych haseł, haker nie będzie mógł się zalogować Ale jeśli klient zapomni hasła, to administrator serwera nie może mu go przypomnieć; może tylko pozwolić mu na ustalenie nowego hasła
Przeplatanie PHP z HTML Wykład 11 PHP szczegóły intymne, str 11 <?php if(isset($ REQUEST[ jasno ])&& $ REQUEST[ jasno ]==1) {?> HTML 1 <?php else {?> HTML 2 <?php?>
Przeplatanie PHP z HTML Wykład 11 PHP szczegóły intymne, str 11 <?php if(isset($ REQUEST[ jasno ])&& $ REQUEST[ jasno ]==1) {?> HTML 1 <?php else {?> HTML 2 <?php?> Kod PHP można swobodnie mieszać z kodem HTML
Przeplatanie PHP z HTML Wykład 11 PHP szczegóły intymne, str 11 <?php if(isset($ REQUEST[ jasno ])&& $ REQUEST[ jasno ]==1) {?> HTML 1 <?php else {?> HTML 2 <?php?> Kod PHP można swobodnie mieszać z kodem HTML Przełączanie na PHP(znacznik <?php) oraz na HTML(znacznik?>) może się znajdować nawet wewnątrz nawiasów {