Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Czy cookie są bezpieczne ?
MOniToR
post 21.02.2005, 00:38:54
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


Mam zamiar zrobić dośc dużą stronę. Chciałbym przechowywać uprawnienia użytkowników w ciasteczkach ale nie wiem czy sa one wystraczające bezpieczne. Czy istnieje możliwośc aby ktoś upierdliwy stworzył/edytował na swoim kompie cookie, które by mu wtedy dawały okreslone uprawnienia na stronie?


--------------------
Go to the top of the page
+Quote Post
Yarecki
post 21.02.2005, 00:40:38
Post #2





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

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


To są pliki txt, także każdy może w nich grzebać.

Lepiej przechowywać takie dane w sesjiach, po stronie serwera.


--------------------
Nigdy nie kłóć się z głupim, ludzie mogą nie dostrzec różnicy.
Go to the top of the page
+Quote Post
dr_bonzo
post 21.02.2005, 00:51:35
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


User moze (w Operze prosciutko) edytowac cookiesy. Uprawnienia NIE MOGA byc przechowywane u usera tylko u ciebie (na twoim serwerze).

User loguje sie na twojej stronie -- czyli posiada jakies konto -- do tego konta sa przyporzadkowane uprawnienia i tyle.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
MOniToR
post 22.02.2005, 01:43:59
Post #4





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


No tak, ale chciałbym aby dane były w cookies ponieważ chcem zrobic taką opcję jak'loguj automatycznie'. I teraz nie wiem jak to zrobić, bo nawet jeżeli dam w ciasteczkach samo id usera, to i tak ktos kto będzie chciał uprzykrzyc życie włascicielowi strone wyedytuje w cookies swoje id na id admina. Możecie mi w tym cos poradzić ?


--------------------
Go to the top of the page
+Quote Post
Kuziu
post 22.02.2005, 01:48:52
Post #5





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


To może dodaj do cookies poza ID także zahashowane hasło funkcją np. md5().

Dzięki temu nikt nie wyedytuje jednocześnie ID oraz HASŁA w dodatku zahashowanego.

I przy każdej akcji na stronie ... sprawdzaj czy zahashowane hasło z cookies zgadza się z zahashowanym z bazy danych.

Ten post edytował Kuziu 22.02.2005, 01:49:38


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
Puciek
post 22.02.2005, 05:45:49
Post #6


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Czyli żeby przedstawić ci to w praktyce
  1. <?php
  2. if( !( empty( $_COOKIE['login'] ) ) && !( empty( $_COOKIE['haslo'] ) ) )
  3. {
  4.  sprawdz_login( $_COOKIE['login'], $_COOKIE['haslo'] );
  5.  pobierz_uprawnienia( $_COOKIE['login'] );
  6. }
  7. else
  8. {
  9.  formularz_logowania();
  10. }
  11. ?>
Gdzie przyjmiemy że funkcja "sprawdz_login" sprawdza czy jest poprawne hasło do logina a formularz_logowania wyświetla odpowiedni do zalogowania sie formularz a pobierz_uprawnienia jak można wywnioskować poprstu je pobiera ^^


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
Yarecki
post 22.02.2005, 13:35:17
Post #7





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

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


Hmm ja bym w ciastku trzymał login i md5( $login . md5( $password ) ).


--------------------
Nigdy nie kłóć się z głupim, ludzie mogą nie dostrzec różnicy.
Go to the top of the page
+Quote Post
Puciek
post 22.02.2005, 15:11:49
Post #8


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Cytat(Yarecki @ 2005-02-22 14:35:17)
Hmm ja bym w ciastku trzymał login i md5( $login . md5( $password ) ).

Toteż jest to logiczne, tu niema samego logowanie tylko juz pobieranie hasla ktore jest zakodowane w md5 ^^

UPDATE
Jak bedziesz mial login w md5 to jak kogos zalogujesz ^^ ?

Ten post edytował Puciek 22.02.2005, 15:12:34


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
mhs
post 22.02.2005, 15:19:01
Post #9





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


Cytat(Puciek @ 2005-02-22 16:11:49)
UPDATE
Jak bedziesz mial login w md5 to jak kogos zalogujesz ^^ ?

moze mniej wiecej takie zapytanie bedziesz wysylal do bazy danych?

  1. SELECT
  2. *
  3. FROM userzy WHERE login = md5('login') AND haslo = md5('haslo')


- jezeli takie zapytanie zwroci wiersze to znaczy ze uzytkownik istnieje...
Go to the top of the page
+Quote Post
Puciek
post 22.02.2005, 15:24:08
Post #10


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


hmm
albo zle rozumuije albo on bedzie wtedy w bazie przechowywal uzytkownikow w md5, dobrze rozumuje ?


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
mhs
post 22.02.2005, 15:31:37
Post #11





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


Cytat(Puciek @ 2005-02-22 16:24:08)
hmm
albo zle rozumuije albo on bedzie wtedy w bazie przechowywal uzytkownikow w md5, dobrze rozumuje ?

ech to... ja namieszalem...
myslalem o zapytaniu tego typu:

  1. SELECT
  2. *
  3. FROM uzytkownicy WHERE md5(login) = '0db2af75179fb9dbe097af182d442a4a';



gdzie '0db2af75179fb9dbe097af182d442a4a' - zhaszowany login pobrany z ciastka


sorry...
Go to the top of the page
+Quote Post
hawk
post 22.02.2005, 15:32:50
Post #12





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Podobno najstarsi górale używają do tego... sesji biggrin.gif.

Jakie to ma znaczenie, czy login/hasło są zaszyfrowane, jeżeli muszę tylko zesniffować cookie i wysłać do serwera? Chociaż dochodzimy tutaj do SSL, bez którego nie ma mowy o bezpieczeństwie.

Login/hasło w cookie są również niebezpieczne z dwóch innych powodów
- nawet zaszyfrowane md5 są do złamania; md5 to już przestarzały algorytm
- na komputerze zostaje cookie z wszystkimi danymi potrzebnymi do włamania się na konto danego usera
Go to the top of the page
+Quote Post
Puciek
post 22.02.2005, 15:38:45
Post #13


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Cytat(hawk @ 2005-02-22 16:32:50)
Podobno najstarsi górale używają do tego... sesji biggrin.gif.

Login/hasło w cookie są również niebezpieczne z dwóch innych powodów
- nawet zaszyfrowane md5 są do złamania; md5 to już przestarzały algorytm
- na komputerze zostaje cookie z wszystkimi danymi potrzebnymi do włamania się na konto danego usera

Wystarczy kilka dni bruteforca na silnej maszynce i po rpoblemie, ale to już inna para kaloszy.
W pelni zgadzam sie co do sesji ale wtedy musialbys logowac na podstawie IP a nie zachowanego cookie ^^


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
MOniToR
post 22.02.2005, 17:11:40
Post #14





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


hmm może mi ktos powiedziec jak zakodowac text w md5 i potem odkodowac (wiem, len jestem tongue.gif)? ;> Sesje sa dobre, ale ja che mieć opcje 'loguj automatycznie' aby użytkownicy nie musieli się za każdym razem logowac. A ma ktoś jeszcze jakiś pomysł jezeli md5 nie jest takie bezpieczne ? Robie naprawde spory serwis i musze się dobrze zabezpieczyc.


--------------------
Go to the top of the page
+Quote Post
slash^
post 22.02.2005, 17:18:59
Post #15





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


zakodowanie:

  1. <?php
  2. $txt = &#092;"blablub\";
  3. $zakodowane = md5 ($txt); 
  4.  
  5. echo $zakodowane;
  6.  
  7. ?>


md5 to hash - nie odkodujesz tego

a bezpieczeństwo z "loguj automatycznie" + "cookies" -> nie istnieje

ale pomysl o SSL


--------------------
d(^^)b
Go to the top of the page
+Quote Post
MOniToR
post 22.02.2005, 17:35:44
Post #16





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


To jak mama sprawdzic czy uzytkownik wpisal dobre haslo jeżeli jego hasło jest zakodowane a ja nie moge tego odkodować ? ;E


--------------------
Go to the top of the page
+Quote Post
Nievinny
post 22.02.2005, 17:38:41
Post #17





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 27.01.2005
Skąd: Białystok

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


Sprawdzasz kodując hasło które podał i wersję zakodowaną porównać z zakodowanym z bazy danych


--------------------
Go to the top of the page
+Quote Post
MOniToR
post 22.02.2005, 19:20:37
Post #18





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


Cytat(Nievinny @ 2005-02-22 18:38:41)
Sprawdzasz kodując hasło które podał i wersję zakodowaną porównać z zakodowanym z bazy danych

to jak uzytkownik bedzie mógł się logowac swoim hasłem jeżeli będzie ono zakodowane ?


--------------------
Go to the top of the page
+Quote Post
Yarecki
post 22.02.2005, 20:32:27
Post #19





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

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


Cytat(Puciek @ 2005-02-22 15:11:49)
Cytat(Yarecki @ 2005-02-22 14:35:17)
Hmm ja bym w ciastku trzymał login i md5( $login . md5( $password ) ).

Toteż jest to logiczne, tu niema samego logowanie tylko juz pobieranie hasla ktore jest zakodowane w md5 ^^

UPDATE
Jak bedziesz mial login w md5 to jak kogos zalogujesz ^^ ?

Chodziło mi o to, że w bazie login jest normalnie zapisany, a hasło zahaszowane.

W ciastku natomiast trzymać tylko login i hash [loginu + hasła] z bazy, lub sam hash [loginu + hasło] z bazy.

W taki sposób można jednoznacznie określić użytkownika, nie podając mu konkretnych danych. Utrudnia to też _trochę_ brute force bo trzeba najpierw rozgryżć ten zlepek [login + haslo] i dopiero wtedy można rozgryzać hasło.


--------------------
Nigdy nie kłóć się z głupim, ludzie mogą nie dostrzec różnicy.
Go to the top of the page
+Quote Post
slash^
post 22.02.2005, 21:28:04
Post #20





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Cytat(MOniToR @ 2005-02-22 19:20:37)
to jak uzytkownik bedzie mógł się logowac swoim hasłem jeżeli będzie ono zakodowane ?

w bazie trzymasz w tabeli:

Kod
id  login      haslo
1   admin    hash
2   user      hash


w skrócie: w bazie danych zapisujesz hasla juz zahashowane przez md5.

User logując się wysyła przez formularz do skryptu:
-> $login
-> $haslo

skrypt przerabia haslo na hash w md5
$hashHaslo = md5($haslo)

budujesz zapytanie sql
select * from login where login = $login and haslo = $hashHaslo;

...


--------------------
d(^^)b
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 16.07.2025 - 06:37