Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Logowanie - Sesja + Cookies, Panel logowania, a bezpieczeństwo
baripoland
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2011

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


Witam.
Chciałem napisać prosty skrypt logowania, oparty o sesje. Pomyślałem jednak, że jeżeli zostawię tylko sesje, to przy każdej kolejnej wizycie użytkownik będzie musiał się logować na nowo. Wtedy pomyślałem o cookies. Napisałem coś takiego w pliku login.php (on dostaje dane z panelu logowania):

  1.  
  2. //jezeli wybrano opcje "pamietaj haslo" wtedy dodaj id, login i haslo do cookies
  3. if(isset($_POST['pamietajh'];
  4. {
  5. setcookie(id, $id);
  6. setcookie(login, $login);
  7. setcookie(haslo, $haslo);
  8. }


* id nie jest pobierane do formularza, będzie mi później służył do czegoś innego, ale to nie ważne.

OK. W tym momencie mam (o ile skrypt nie ma błędów wink.gif ) zapamiętany login i hasło w cookies. Hasło jest zakodowane w md5 więc względnie jest to bezpieczne. Dodałem, więc coś takiego do pliku header.php:

  1. if(isset($_COOKIE['login']){
  2. $login = $_COOKIE['login'];
  3. session_register('login');
  4. }


Zastanawia mnie tylko jedna rzecz - czy jeśli użytkownik pogrzebie w plikach przeglądarki nie będzie w stanie zmienić loginu, np. na login administratora, przez co uzyskać możliwość zalogowania się z jego uprawnieniami?

Teoretycznie można by używać sesji zalogowany - 1 lub 0, jednak skąd wówczas skrypt ma wiedzieć jako kto dany użytkownik jest zalogowany?
Pozdrawiam i z góry wielkie dzięki za pomoc smile.gif

//UPDATE:

Przemyślałem jeszcze raz sprawę i chyba sam znalazłem rozwiązanie. Przecież, o ile user mógłby zmienić login w plikach cookies (bo inne loginy zna), to z hasłami tak już nie jest. Więc może zrobić tak, by skrypt (ten w header.php) działał następująco :

1. Sprawdzenie czy w cookies jest login i przypisanie jego wartości do zmiennej.
2. Sprawdzenie czy w cookies jest hasło i przypisanie jej wartości do zmiennej.
3. Sprawdzenie w bazie czy istnieje taki login w tabeli users.
4. Jeżeli login istnieje - sprawdź czy jego hasło zgadza się z tym ze zmiennej.
5. Jeżeli wszystko się zgadza - zarejestruj sesję o zalogowaniu.

Czy coś takiego będzie działać prawidłowo i nie będzie podatne na ataki gimnazjalistów?
Pozdrawiam

Ten post edytował baripoland 21.07.2011, 02:39:59
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 20.08.2025 - 05:55