Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
PHP + MySQL część II
2
o MySQL raz jeszcze Zapytania do bazy
SELECT – 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 PHP
Musimy znać: Host serwera Użytkownika Hasło Nazwę bazy danych localhost root informer informer
4
Łączenie się z bazą MySQL z PHP
mysql_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'a
mysql_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(“<p>Lista studentów z bazy:</p><ul>”); while($student = mysql_fetch_array($wynik)){ echo(“<li>”.$student['imie'].” “.$student['nazwisko'].”</li>”); } echo(“</ul>”);
8
Księga gości Formularz HTML Przetworzenie danych z POST Tabela MySQL
Do 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) Flood
Księga gości - błędy XSS (Cross-site scripting) Flood
11
System logowania + MySQL
START 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 + MySQL
SELECT `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 logowania
Login: ' OR 1='1 SELECT `admin` FROM `uzytkownicy` WHERE `login`='' OR 1='1' AND `haslo`='' OR 1='1'; Atak MySQL injection
14
Zabezpieczenie przed MySQL injection
mysql_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()
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 pracy
TrueBug PHP Obfuscator & Encoder
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.