Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Logowanie użytkownika - ocena klasy.
Forum PHP.pl > Forum > Przedszkole
NetBeans
Witajcie.
Napisałem klasę, która ma za zadanie logować użytkownika w systemie. Znajomy powiedział mi, że bardzo łatwo jest przechwycić sesję, której użyłem w klasie. Jednakże nie powiedział mi dlaczego. Proszę o wskazanie mi błędów, oraz propozycję (nie gotowce) jak można je poprawić. Ogólnie chodzi mi o bezpieczeństwo.

  1. class UserManager {
  2.  
  3. protected $login;
  4. protected $password;
  5. protected $mail;
  6.  
  7. public function LogIn($LOGIN, $PASSWORD) {
  8. $this->login = $LOGIN;
  9. $this->password = md5($PASSWORD);
  10.  
  11. if (self::isExist() && count(self::isExist()) > 0) {
  12. self::log_in();
  13. return $this->login;
  14. } else {
  15. return false;
  16.  
  17. }
  18. }
  19.  
  20. protected function isExist() {
  21. $arr = DatabaseManager::selectBySQL("SELECT * FROM users WHERE username = '{$this->login}' AND password = '{$this->password}' LIMIT 1");
  22. return $arr;
  23. }
  24.  
  25. protected function log_in() {
  26. $_SESSION['login'] = $this->login;
  27. $_SESSION['logged'] = true;
  28. }
  29.  
  30. public function LogOut() {
  31. $_SESSION['login'] = false;
  32. $_SESSION['logged'] = false;
  33.  
  34. }
  35.  
  36. }
Adi32
Czemu raz piszesz log_in() a raz LogOut() ? Najlepiej wybrać jeden styl, ja np. używam "_" do nazw zmiennych i dużej litery każdego słowa poza pierwszym w nazwach funkcji i metod.
potreb
I dlaczego self zamiast this, co do przechwycenia, zwaliduj może login, chyba że to robi ci klasa db, ale nie myślę.
gothye
A jak z filtrowaniem danych ? nic nie ma takiego
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.