Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Czy to logowanie jest bezpieczne?
Forum PHP.pl > Forum > PHP
cafepl_com
Witam,

znalazłem ostatnio taki oto gotowy kod rejestracji/logowania na stronę: http://php.about.com/od/finishedphp1/ss/php_login_code.htm
Czy ten kod jest bezpieczny? Jeśli nie, to bardzo proszę o wyjaśnienie.
Chodzi mi głównie o cookiesy/sesje - czy takie wykorzystanie jest prawidłowe.


Z góry dziękuję.
lipiec
Kod logowania i rejestracji wydaje się bezpieczny. Jednak zalecam do budowania zapytań do bazy danych bibliotekę PDO.
Czy na pewno potrzebujesz zakładanie ciasteczek po przez funkcje setcookie()? Myślę, że łatwiej będzie Tobie operować z pomocą takich funkcji jak session_start(), session_destroy() i globalna tablica $_SESSION.

Pozdrawiam, ML
cafepl_com
Dziękuję za szybką odpowiedź.
Chciałbym mieć możliwość "zapamiętaj mnie" przy logowaniu, a do tego cookie'sy raczej są niezbędne. Chyba, że jest jakiś inny sposób, o którym nie wiem.
redeemer
Jakoś dziwnie napisany ten skrypt.

  1. ...
  2. $_POST['pass'] = md5($_POST['pass']);
  3. $_POST['pass'] = addslashes($_POST['pass']);
  4. $_POST['username'] = addslashes($_POST['username']);
  5. }
  6. ...

W kodzie powyżej nie podoba mi się:

1) Najpierw md5 a potem addslashes? Hm. smile.gif
2) Dwukrotne addslashes na $_POST['username], bo parenaście linii wcześniej:
  1. // checks if the username is in use
  2. $_POST['username'] = addslashes($_POST['username']);
  3. }


Po za tym, używanie niepotrzebnych dodatkowych zmiennych np. w tym wypadku usercheck:
  1. $usercheck = $_POST['username'];
  2. $check = mysql_query("SELECT username FROM users WHERE username = '$usercheck'")


Dalej przeleciałem tylko pobieżnie. Ogólnie pani Angela Bradley się nie popisała i dla mnie wygląda amatorsko, nie polecam.
lipiec
A... jeśli potrzebujesz taką funkcjonalność to jak najbardziej. Mały hint. smile.gif

Cytat(redeemer @ 23.01.2010, 19:50:56 ) *
Jakoś dziwnie napisany ten skrypt.

  1. ...
  2. $_POST['pass'] = md5($_POST['pass']);
  3. $_POST['pass'] = addslashes($_POST['pass']);
  4. $_POST['username'] = addslashes($_POST['username']);
  5. }
  6. ...

W kodzie powyżej nie podoba mi się:

1) Najpierw md5 a potem addslashes? Hm. smile.gif
2) Dwukrotne addslashes na $_POST['username], bo parenaście linii wcześniej:
  1. // checks if the username is in use
  2. $_POST['username'] = addslashes($_POST['username']);
  3. }


Po za tym, używanie niepotrzebnych dodatkowych zmiennych np. w tym wypadku usercheck:
  1. $usercheck = $_POST['username'];
  2. $check = mysql_query("SELECT username FROM users WHERE username = '$usercheck'")


Dalej przeleciałem tylko pobieżnie. Ogólnie pani Angela Bradley się nie popisała i dla mnie wygląda amatorsko, nie polecam.


Co nie zmienia faktu, że podstawowe zabezpieczenia są. Chyba, że rzeczywiście cafepl__com chce użyć na tym Ctrl+C, Ctrl+V, wtedy nie bardzo, ale wierzę, że po prostu chce mieć tylko pogląd na użyte funkcje.
cafepl_com
Bez przesady, nigdy nie kopiuję w całości kodu bez gruntownych oględzin i własnych poprawek smile.gif
Co do hinta, ten kod jest bezpieczny? smile.gif
lipiec
Cytat(cafepl_com @ 23.01.2010, 20:07:09 ) *
Bez przesady, nigdy nie kopiuję w całości kodu bez gruntownych oględzin i własnych poprawek smile.gif
Co do hinta, ten kod jest bezpieczny? smile.gif

NIE, ten kod nie jest bezpieczny, ale masz tam pokazane jak mniej więcej zaimplementować funkcjonalność, którą wymagasz. smile.gif W Internecie jest masa publikacji jak zabezpieczyć skrypty PHP, które wykonują zapytania do bazy, więc nie powinieneś mieć problemów, użyj jeszcze tylko troszkę własnej wyobraźni. smile.gif
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.