Czy takie użycie ciasteczek jest bezpieczne?


(Małyhumzatodużejaje) #1

Witam!

 

Chciałem się zapytać czy poniższe rozwiązanie jest bezpieczne w zastosowaniu.

We wcześniejszym etapie logowania jest bezpieczne logowanie php.

Jeśli jest udane dodawane są dwa ciasteczka "uzytkownik" oraz "haslo".

Następnie w każdej podstronie zanim wyświetlę treść sprawdzam:

if($_COOKIE['uzytkownik'] == "administrator" && $_COOKIE['haslo'] == "password")
{
echo "jestes zalogowany";
}
else
{
echo "NIE jestes zalogowany";
}

Jest to bezpieczne?

 

Pozdrawiam!


(scripter1) #2

A jak myślisz?

Przechwycenie ciasteczka jest bardzo proste.

Czy twoim zdaniem przechowywanie loginu i hasła w ciasteczku i to w dodatku w postaci zwykłego niezaszyfrowanego tekstu jest bezpieczne?


(Drobok) #3

Coś mi tu podśmierduje zadaniem z czegoś :stuck_out_tongue:


(Małyhumzatodużejaje) #4

Żadne zadanie, po prostu szukam sposobu aby nie musieć za każdym razem wpisywać hasła.

No i zapomniałem dodać że login i hasło z wcześniejszego etapu różnią się od tych przetrzymywanych w ciasteczkach.

W sumie to nic nie zmienia, ponieważ kiedy ktoś przechwyci ciasteczka to i tak ma dostęp jako zalogowany aż ciasteczko nie wygaśnie.

 

Da się jakoś zabezpieczyć ciasteczka?

Myślałem aby w pole “uzytkownik” podać IP osoby logującej a potem sprawdzić czy osoba logująca posiada to samo IP.

Podszycie się pod kogoś IP jest raczej niemożliwe, więc jest to chyba wystarczające zabezpieczanie?


(scripter1) #5

IP też da się sfałszować, są ataki polegające właśnie na wysyłaniu pakietów ze sfałszowany IP nadawcy.

Poza tym jak ktoś ma łącze od operatora bez zewnętrznego IP albo ma własną podsieć to zewnętrzny IP dzieli z innymi użytkownikami więc jak któryś z nich przechwyci takie ciasteczko to ma całą sesję.

Poza tym teraz coraz więcej osób korzysta z oprogramowania anonimizującego które działa na takiej zasadzie że rzeczywiste IP użytkowników trafia do wspólnej puli a użytkownicy łącząc się z siecią korzystają z IP losowo wybranego z tej puli który w dodatku co chwila się zmienia, w takim przypadku uzależnienie sesji logowania od IP nie zda egzaminu.

Często się robi tak że w ciasteczku przechowuje się jedynie id sesji natomiast sesja jest zarządzana przez serwer który może po określonym czasie braku aktywności unieważnić sesję wraz z jej id (tak jest np. w przypadku usług bankowych).

Jako dodatkowe zabezpieczenie serwer może zapamiętać że sesja została nawiązana z określonego IP i/lub z przeglądarki identyfikującej się określonym UA a w przypadku wykrycia próby użycia danego id sesji z innego IP lub innej przeglądarki może unieważnić sesję.


(kostek135) #6

Pomijając już bezpieczeństwo, takie rozwiązanie jest nieskalowalne. Dla każdego nowego użytkownika dopiszesz if-a?