Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SQL Injection
Forum PHP.pl > Forum > Przedszkole
kangurmk
Czy poniżasza funkcja jest odporna na ataki typu SQL Injection? Używam jej do sprawdzania loginu i hasła podczas logowania użytkownika.
  1. <?php
  2.  
  3. function CheckPass($user, $haslo)
  4. {
  5. if($user == '' || $haslo == '')
  6. return false;
  7.  
  8. $zapytanie = "SELECT * FROM uzytkownicy WHERE uzytk_login='".$user."'";
  9. $result = mysql_query($zapytanie);
  10.  
  11. if(!$result)
  12. { 
  13. return false;
  14. }
  15. else
  16. {
  17. $row = @mysql_fetch_assoc($result);
  18. if($row['uzytk_aktywacja'] == 'tak')
  19. {
  20. if($haslo == $row['uzytk_haslo'])
  21. {
  22. return true;
  23. }
  24. else
  25. {
  26. return false;
  27. }
  28. }
  29. else
  30. {
  31.  return false;
  32. }
  33. }
  34. }
  35.  
  36. ?>
Ozzy
nie jest
hwao
Cytat(Ozzy @ 2006-02-19 18:39:37)
nie jest

i tak i nie:) zalezy czy filtrujesz dane przed daniem ich do tej funkcji ;-)
jezeli nie, to nie jest
dr_bonzo
Na SQL Injection moze byc jedynie odporne zapytanie SQL

  1. <?php
  2. $zapytanie = "SELECT * FROM uzytkownicy WHERE uzytk_login='".$user."'";
  3. ?>


Nie jest ono zabezpieczone bo podstawiasz nieprzefiltrowana wartosc $user.
Ta funkcja powinna sie zajac escapowaniem swoich argumentow, ktore pozniej wkladasz do SQLa.

Co do spraw technicznych, czyli jak to zrobic --> jest post na forum.
aleksander
http://forum.php.pl/index.php?showtopic=23258

zamykam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.