PHP + MySQL część II.

1 PHP + MySQL część II ...
Author: Sara Madaj
0 downloads 6 Views

1 PHP + MySQL część II

2 o MySQL raz jeszcze Zapytania do bazySELECT – do wyświetlania i wyszukiwania rekordów w wybranej tabeli INSERT – do wstawiania nowych rekordów do bazy UPDATE – do poprawy danych w istniejącym już rekordzie DELETE – do usuwania rekordów

3 Łączenie się z bazą MySQL z PHPMusimy znać: Host serwera Użytkownika Hasło Nazwę bazy danych localhost root informer informer

4 Łączenie się z bazą MySQL z PHPmysql_connect(“localhost”,”root”,”informer”); mysql_select_db(“informer”); mysql_connect($mysql_serwer,$mysql_user,$mysql_haslo); mysql_select_db($mysql_baza);

5 Podstawowe funkcje w PHP do MySQL'amysql_connect mysql_pconnect mysql_close mysql_query mysql_fetch_array mysql_num_rows mysql_real_escape_string

6 Przykładowe zapytanie z poziomu PHP$wynik=mysql_query(“SELECT * FROM `studenci`;”); echo(“Jest “.mysql_num_rows($wynik).” studentów w bazie.”); SELECT COUNT(*) FROM `studenci`;

7 mysql_fetch_array + while$wynik=mysql_query(“SELECT * FROM `studenci`;”); echo(“

Lista studentów z bazy:

    ”); while($student = mysql_fetch_array($wynik)){ echo(“
  • ”.$student['imie'].” “.$student['nazwisko'].”
  • ”);
    } echo(“
”);

8 Księga gości Formularz HTML Przetworzenie danych z POST Tabela MySQLDo przechowywania wpisów

9 SELECT do wypisywania wpisów INSERT INTO do wpisywania Księga gości SELECT do wypisywania wpisów INSERT INTO do wpisywania Wszystko ok? Nie do końca...

10 XSS (Cross-site scripting) FloodKsięga gości - błędy XSS (Cross-site scripting) Flood

11 System logowania + MySQLSTART Wyświetl formularz logowania Zalogowany? TAK NIE NIE POST? TAK Uwierzytelnienie NIEPOPRAWNE POPRAWNE Wyświetl stronę dla zalogowanych Wyświetl komunikat o niepoprawnych danych

12 System logowania + MySQLSELECT `admin` FROM `uzytkownicy` WHERE `login`='...' AND `haslo`='...'; if(mysql_num_rows($wynik)!=0) to OK! $_SESSION['zalogowany']=true; Czy administrator? Wszystko ok? Nie do końca...

13 Hacking systemu logowaniaLogin: ' OR 1='1 SELECT `admin` FROM `uzytkownicy` WHERE `login`='' OR 1='1' AND `haslo`='' OR 1='1'; Atak MySQL injection

14 Zabezpieczenie przed MySQL injectionmysql_real_escape_string intval sprintf

15 Przykład bezpiecznego zapytania$imie=mysql_real_escape_string($_POST['imie']); $nazwisko=mysql_real_escape_string($_POST['nazwisko']); $sql=sprintf(“SELECT * FROM `studenci` WHERE `imie`='%s' AND `nazwisko`='%s';”, $imie, $nazwisko); $wynik = mysql_query($sql);

16 Hashowanie haseł PASSWORD() w MySQL md5()

17

18 dzialy (`id`, `tytul`, `tresc`) ustawienia (`opcja`, `wartosc`) CMS Tabele: dzialy (`id`, `tytul`, `tresc`) ustawienia (`opcja`, `wartosc`) uzytkownicy (`login`, `haslo`, `admin`) news (`id`, `tytul`, `tresc`, `kto`, `kiedy`)

19 Zabezpieczenie naszej pracyTrueBug PHP Obfuscator & Encoder