Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przechowanie hasła w sesji
ReBeLs513
post 7.06.2011, 14:14:06
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

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


hmmm...

  1. <?php
  2.  
  3. $password_cypt = md5($password);
  4.  
  5. if (($password_cypt == $set_pass) && ($username == $set_user)) {
  6. setcookie("PassMaster[1]", "$password_cypt", time() + 3600, '/');
  7. setcookie("PassMaster[2]", "$username", time() + 3600, '/');
  8. }
  9.  
  10. ?>


To raczej nie jest bezpieczne..? Czy mógłbym usunąć
  1. setcookie("PassMaster[1]", "$password_cypt", time() + 3600, '/');
? Czy i to nic nie da w zabezpieczeniu?


--------------------
Przypomnij o "+", jeśli mi pomogłeś a nie zapunktowałem :P
Go to the top of the page
+Quote Post
nospor
post 7.06.2011, 14:18:44
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




W tytule masz sesja, w kodzie masz ciastko. Nie rozróżniasz tych dwóch rzeczy?
Danych użytkownika nie przechowuje się w ciastku. Od tego masz sesję. Ale i to hasła nie ma potrzeby przechowywać w sesji bo i po co?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
aeaeae
post 7.06.2011, 14:32:19
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


Mechanizm sesji przy uwierzytelnianiu działa tak, że użytkownik ma tylko identyfikator sesji (losowy ciąg znaków, który służy tylko identyfikacji sesji). Wysyła ten identyfikator, a serwer go rozpoznaje i pozwala zaglądać w zmienne, które przechowuje właśnie dla tego konkretnego identyfikatora (ciągu znaków).

session_start() wszystko załatwia ...

Ten post edytował aeaeae 7.06.2011, 14:33:42
Go to the top of the page
+Quote Post
Hpsi
post 7.06.2011, 14:32:43
Post #4





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
Ale i to hasła nie ma potrzeby przechowywać w sesji bo i po co?

Rozwiń myśli jesli możesz dlaczego tak uwazasz?


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
nospor
post 7.06.2011, 14:34:08
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Hpsi+ a co tu rozwijać? Po co hasło przechowywać w sesji? Masz ku temu jakiś powód? Jak masz, to ty rozwiń myśl, bo mojej naprawdę nie ma co rozwijać smile.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
aeaeae
post 7.06.2011, 14:35:20
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


W sesji (jej zmiennej) przechowuje się tylko id użytkownika, i tym id można sobie dowolnie operować.
Go to the top of the page
+Quote Post
Hpsi
post 7.06.2011, 14:37:20
Post #7





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


@nospor, powiem Ci ze teraz zaczynam zastanwiać nad tym, miałem w nawyku żeby zawsze w sesji przechowywać id i haslo zaszyfrowane w md5, na wypadek próby jakieś kombinacji, wiec zastnawia mnie co ty zapisujesz w sesji, gdyż troszkę niebezpiecznie jest przechowywać sam id (przynajmniej tak mi się wydaje)
sory zapomniałem jeszcze o przechowywaniu ip w sesji. Ogólnie sesja mojego użytkownika zawsze jest sprawdzana na zasadzie id + hasło , oraz czy ip zapisany w sesji jest zgodny z tym ip z którego użytkownik korzysta .

Ten post edytował Hpsi+ 7.06.2011, 14:40:33


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
ixpack
post 7.06.2011, 14:43:41
Post #8





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


IMO to czy przechowujemy id czy id + hasło jest bez różnicy - jak przejmą sesję to i tak przejmą sesję. IMO najlepiej łączyć sesję z ciastkiem, a jeszcze lepiej jakby user był autoryzowany przez certyfikat albo użyć java do pobierania jakiegoś tajnego pliku z kompa usera.

Chyba ten post zbacza z kursu...


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
aeaeae
post 7.06.2011, 14:44:33
Post #9





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


Hpsi+, i może jeszcze za każdym razem gdy wysyłasz zapytanie sprawdzasz czy hasło się zgadza? tongue.gif
Jak ktoś Ci wejdzie na sesję, to i tak to nie ma znaczenia przecież ...
Go to the top of the page
+Quote Post
Hpsi
post 7.06.2011, 14:55:57
Post #10





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
Hpsi+, i może jeszcze za każdym razem gdy wysyłasz zapytanie sprawdzasz czy hasło się zgadza?

Nie, ale sprawdzam za każdym odswierzeniem strony czy są poprawne dane jeśli tak to, wtedy ma zezwolenia do edycji swoich danych etc
Cytat
Jak ktoś Ci wejdzie na sesję, to i tak to nie ma znaczenia przecież ...

Co fakt to fakt, tylko teraz następuje pytanie jak sesje zabezpieczyć tak by tego nie zrobić smile.gif ale ten temat na pewno był poruszany na forum więc sobie poszukam smile.gif z ciekawości


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
ReBeLs513
post 7.06.2011, 17:07:12
Post #11





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

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


Sory, tak szybko pisałem, że sesję pomyliłem z ciachem haha.gif Do tematu... Nie wiem jakim cudem ale posiadam https:// do strony i teraz moje pytanie Czy te hasło w ciachu mogę usunąć czy jest to zabezpieczenie? I drugie pytanie, te https://- gdy użytkownik idzie do panelu logowania- dać całe logowanie w https:// dla bezpieczeństwa?:-) O hasło pytam, bo słyszałem, że nie jest bezpiecznie przechowywanie go ale nie wiem czy w sesji, czy ciastku...


--------------------
Przypomnij o "+", jeśli mi pomogłeś a nie zapunktowałem :P
Go to the top of the page
+Quote Post
cisu
post 7.06.2011, 18:37:51
Post #12





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 15.03.2008
Skąd: Mirostowice Dolne

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


Wg. mnie przechowywanie hasła w sesji nie jest złe, o ile jest ono zahashowane (zaszyfrowane). Jak przechowuje się tylko ID usera to, jeśli ktoś znajdzie dziurę, może podszyć się za każdego, podają ID innego usera. Jak natomiast przechowuje się powiedzmy ID i hasło, to można porównać, czy dla konta o danym ID podane hasło jest poprawne i jak nie - session_destroy(). Co innego z logowaniem przez ciasteczka, ale jak tam też będzie zahaszowane to raczej nie będzie to takie niebezpieczne. No i hasła należy hashować nie tylko md5(hasło), ale np. md5(jakiś_klucz.nazwa_usera.hasło) albo inne cyrki, wtedy jest nieco lepiej zabezpieczone.

A co do https - można dać, ale jak nie masz certyfikatu to będzie info że strona jest potencjalnie niebezpieczna itd. a jak nie masz nie wiadomo jakiego ruchu na stronie czy nie masz tam poufnych danych typu adresy czy numery kont, to zwykłe zabezpieczenia powinny wystarczyć.
Go to the top of the page
+Quote Post
ReBeLs513
post 7.06.2011, 19:00:27
Post #13





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

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


Hmm... Hasło jest md5 no i wyszukałem jakieś zabezpieczenia sesji: ip (nie wiem czy to dobre, gdy ktoś ma zmienne IP:/) i coś o SESSION ID. A https:// to mam, że strona zabezpieczona i certyfikat został podpisany prze nieznany środek certyfikacji a wystawca to RapidSSL.

Ten post edytował ReBeLs513 7.06.2011, 19:14:21


--------------------
Przypomnij o "+", jeśli mi pomogłeś a nie zapunktowałem :P
Go to the top of the page
+Quote Post
gac3k
post 7.06.2011, 19:34:10
Post #14





Grupa: Zarejestrowani
Postów: 90
Pomógł: 8
Dołączył: 28.07.2009

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


Ciekawa dyskusja, ale fakt faktem ważniejsze jest zabezpieczenie sesji przed hijackingiem niż to co się w tej sesji trzyma. Ja osobiście jeśli piszę skrypt na czysto, to przechowuje id oraz login. A gdy korzystam z jakichś frameworków, i modułów do autoryzacji, sprawę zupełnie załatwia samo id. Więc to kwestia gustu.
Go to the top of the page
+Quote Post
ReBeLs513
post 7.06.2011, 21:05:26
Post #15





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 14.03.2010
Skąd: Dessau

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


Mi chodzi o jak największe bezpieczeństwo haha.gif Dlatego pytam o wszystkie możliwości:D


--------------------
Przypomnij o "+", jeśli mi pomogłeś a nie zapunktowałem :P
Go to the top of the page
+Quote Post
Hpsi
post 8.06.2011, 00:03:11
Post #16





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat(gac3k @ 7.06.2011, 19:34:10 ) *
Ciekawa dyskusja, ale fakt faktem ważniejsze jest zabezpieczenie sesji przed hijackingiem niż to co się w tej sesji trzyma.

Tu się zgodzę, i moje pytanie w jaki sposób wy zabezpieczacie sesje przez hijackingiem bo to jest coś co mnie bardzo interesuje .
Cytat
Wg. mnie przechowywanie hasła w sesji nie jest złe, o ile jest ono zahashowane (zaszyfrowane). Jak przechowuje się tylko ID usera to, jeśli ktoś znajdzie dziurę, może podszyć się za każdego, podają ID innego usera.

musze się zgodzić z tym tokiem rozumowania, bugi zawsze sie zdarzają niestety wink.gif
Cytat
No i hasła należy hashować nie tylko md5(hasło), ale np. md5(jakiś_klucz.nazwa_usera.hasło) albo inne cyrki, wtedy jest nieco lepiej zabezpieczone.

W sesji trzymam samo md5 haslo, natomiast w bazie jest md5(sha1(moj_klucz_generowany_do_strony.haslo_usera))); gdzie przewaznie ten klucz to jest 3-9 literki hasha nazwy strony


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
picios
post 8.06.2011, 07:36:03
Post #17





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2011

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


Cytat
W sesji trzymam samo md5 haslo, natomiast w bazie jest md5(sha1(moj_klucz_generowany_do_strony.haslo_usera))); gdzie przewaznie ten klucz to jest 3-9 literki hasha nazwy strony
Więc trzymanie tego w sesji jest zupełnie bezcelowe, bo ani nie wykorzystasz tego hasha do porownania z haslem (nieodwracalnosc md5), ani to wydajne, a w sesji staraj się nie śmiecić - tzn. jak koledzy wyżej mowili - najlepiej tylko ID przechowywac a reszta z bazy czy z plików, jak tam chcesz.
pozdro

Ten post edytował picios 8.06.2011, 07:39:47
Go to the top of the page
+Quote Post
ixpack
post 8.06.2011, 09:56:44
Post #18





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


Cytat(cisu @ 7.06.2011, 18:37:51 ) *
A co do https - można dać, ale jak nie masz certyfikatu to będzie info że strona jest potencjalnie niebezpieczna itd. a jak nie masz nie wiadomo jakiego ruchu na stronie czy nie masz tam poufnych danych typu adresy czy numery kont, to zwykłe zabezpieczenia powinny wystarczyć.


Darmowe ssl są na startssl.com - darmowe i płatne/tanie - ja używam i sprawdzają się świetnie. Przeglądarki akceptują CA więc pytam się "po co przepłacać"?


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
Hpsi
post 8.06.2011, 10:00:00
Post #19





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
Więc trzymanie tego w sesji jest zupełnie bezcelowe, bo ani nie wykorzystasz tego hasha do porownania z haslem (nieodwracalnosc md5)

Dlaczego uwazasz ze nie jestem w stanie do porownac hasha do tego co jest w bazie skoro moje haslo wyglaa tak: np 4w12s.$hasloUsera
to jesli zczytuje po zalogowaniu usera z danych informacje ktore sa zapisane wg zasady wyzej wymiononej, dostaje hasha ktory zostal zapisany, ponownie to hashuje (jakos nie lubie w sesji bezposrednio trzymac hasla w ten sam sposob jak jest zapisany) ponownie w md5 dostaje jakiegos hasha nazwijmy go passHash , wtedy w czasie autoryzacji uzytkownika sprawdzam id oraz czy md5(`password`) = $passHash;


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post

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: 12.07.2025 - 19:40