Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Czy jest to wystarczające zabezpieczenie? - autoryzacja
b_chmura
post
Post #1





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


Witam

Chciałbym się zapytać was ludzi z doświadczeniem i pomysłem czy takie zabezpieczenie jest wystarczające:
  1. <?php
  2. //logowanie - jeśli login i hasło są poprawne tworzy się sesja zakodowanego przez md5 loginu 
    i hasla
  3. function loguj($login, $pass) 
  4. {
  5. $spr = mysql_query("SELECT * FROM `USER` WHERE `login` = 'login' AND `haslo` = '$pass'" LIMIT 0,1);
  6.  
  7. if(mysql_num_rows($spr) == 1)
  8. {
  9. $_SESSION['login'] = md5($login.$pass);
  10. return true;
  11. }
  12. else
  13. {
  14. return false;
  15. }
  16. }
  17. //sprawdzanie czy user jest zalogowany - jeśli dane wyciągnięte i zakodowane przez md5 zgadzają sie z sesją wszystko jes
    t ok
  18. function spr_usr()
  19. {
  20. $query = mysql_query("SELECT * FROM `USER` WHERE `login` = '$login' AND `haslo` = '$pass'");
  21.  
  22. while($user = mysql_fetch_array($query))
  23. {
  24. if(md5($user['login'].$user['haslo']) = $_SESSION['login'])
  25. {
  26. return true;
  27. }
  28. else
  29. {
  30. return false;
  31. }
  32. }
  33. }
  34. ?>

przejdzie to?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
templar
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.09.2006
Skąd: Poland

Ostrzeżenie: (0%)
-----


Cytat(b_chmura @ 11.09.2007, 14:03:56 ) *
Witam

Chciałbym się zapytać was ludzi z doświadczeniem i pomysłem czy takie zabezpieczenie jest wystarczające:
  1. <?php
  2. //logowanie - jeśli login i hasło są poprawne tworzy się sesja zakodowanego przez md5 loginu 
    i hasla
  3. function loguj($login, $pass) 
  4. {
  5. $spr = mysql_query("SELECT * FROM `USER` WHERE `login` = 'login' AND `haslo` = '$pass'" LIMIT 0,1);
  6.  
  7. if(mysql_num_rows($spr) == 1)
  8. {
  9. $_SESSION['login'] = md5($login.$pass);
  10. return true;
  11. }
  12. else
  13. {
  14. return false;
  15. }
  16. }
  17. //sprawdzanie czy user jest zalogowany - jeśli dane wyciągnięte i zakodowane przez md5 zgadzają sie z sesją wszystko jes
    t ok
  18. function spr_usr()
  19. {
  20. $query = mysql_query("SELECT * FROM `USER` WHERE `login` = '$login' AND `haslo` = '$pass'");
  21.  
  22. while($user = mysql_fetch_array($query))
  23. {
  24. if(md5($user['login'].$user['haslo']) = $_SESSION['login'])
  25. {
  26. return true;
  27. }
  28. else
  29. {
  30. return false;
  31. }
  32. }
  33. }
  34. ?>

przejdzie to?


Przed:

  1. <?php
  2. $spr = mysql_query("SELECT * FROM `USER` WHERE `login` = 'login' AND `haslo` = '$pass'" LIMIT 0,1);
  3. ?>


Zapodałbym:

$login = str_replace("'", '', $login);
$pass = str_replace("'", '', $pass);

Nie ma co się bawić addslashes'ami i innymi badziewiami, lepiej po prostu wyciąć ten apostrof w cholerę - tak jest najbezpieczniej.
I najlepiej robić to wszędzie tam, gdzie zmienna bierze udział w zapytaniu MySQL - chyba, że te apostrofy są potrzebne, wtedy lepiej
zastąpić je funkcją htmlentities() i dopiero zapisywać do bazy.

Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 21:17