Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Autologowanie
maly_pirat
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Witam, chce stworzyć auto logowanie działające na zasadzie: Zalogujesz się poprawnie do serwisu, to auto logowanie automatycznie samo się uruchamia, czyli bez żadnych checkboxów, chcesz czy nie, autologowanie będzie włączone.

Fragment kodu, odpowiadającego za autologowanie:
Kod
$haslo = md5($_POST['haslo'];

setcookie("sid", $row['uzytkownikID'].":".$haslo, time()+$cos * 60 * 60 * 24 * 360));


sid - to sesja, którą rozpocząłem (session_name, session_start)
$row['uzytkownikID']; - to ID użytkownika zalogowanego pobranego
$haslo - haslo, które wpisał w formularzu logowania ($_POST)


Jednak mam parę pytań odnośnie cookies, auto logowania;

a) $cos - co tutaj mam wstawić? liczbę 24 , czy co?
cool.gif Czy powyższy kod (a raczej wycinek) jest bezpiecznym kodem, nie grozi mi atak XSS ? itp?
c) Czy zmienna $hasło , która przechowuje hasło użytkownika powinna być bardziej zakodowana ? np. md5 + inne kodowania? czy md5 starczy?
d) Czy powyższy wycinek kodu spowoduje efekt automatycznego logowania?
Ponieważ w formularzu logowania nie będzie pytania "Zalogować auto" tylko chciałbym tak napisać skrypt aby WYMUSZAŁ logowanie auto.
Go to the top of the page
+Quote Post
Leopard
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 20.07.2008

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


a ) w tym przypadku można powiedzieć, że $cos to ilość lat ważności ciastka bo "time()+60*60*24*365" to rok a mnożysz jeszcze przez $cos.
b ) nie wiem guitar.gif
c ) ja dopiero się uczę i na razie ograniczam się do zwykłego md5 ale podobno nie jest to wystarczające zabezpieczenie.
d ) nie, powyższy wycinek ustawia tylko plik cookie. Jak chcesz zrobić automatyczne logowanie to nie wystarczy wysłać ciastko z danymi ale przy wejściu na stronę musisz sprawdzić czy użytkownik ma ciacho i czy podane w nim wartości zgadzają się z tymi w bazie, wtedy go zalogować.

Ten post edytował Leopard 12.04.2009, 11:12:39


--------------------
Once committed to a full attack, only a fatal bullet will stop a charging Leopard.
Piszę poprawnie po polsku.
Go to the top of the page
+Quote Post
DevonSix
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 12.04.2009

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


Witam.

time()+$cos * 60 * 60 * 24 * 360
To wg mnie możesz zupełnie wyrzucić, no chyba że chcesz autowygasanie ciastka.

2. Co do bezpieczeństwa, to jest raczej bezpiecznie biggrin.gif.

3. md5 starczy smile.gif

4. Dopóki nie będziesz sprawdzał egzystencji ciasteczka zrobionego tym kodem to nic się nie stanie biggrin.gif

Pozdrawiam
DevonSix
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




//Czy powyższy kod (a raczej wycinek) jest bezpiecznym kodem, nie grozi mi atak XSS ? itp?
aby XSS się wykonał musiał byś dać echo bo XSS to javascript .

pomysł z ciastkami imho bardzo słaby ,
user szybko dojdzie że używasz samego md5 co w przypadku przechwycenia czyjegoś ciastka zakończy się tragicznie.
Go to the top of the page
+Quote Post
DevonSix
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 12.04.2009

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


Cytat(Spawnm @ 12.04.2009, 11:29:50 ) *
pomysł z ciastkami imho bardzo słaby ,
user szybko dojdzie że używasz samego md5 co w przypadku przechwycenia czyjegoś ciastka zakończy się tragicznie.


;o Jak hasło będzie 2/3 literkami to tak no ale jak user da 8 znakowe z literami i cyframi to i tęczowe tablice za bardzo nie pomogą winksmiley.jpg
Go to the top of the page
+Quote Post
Spawnm
post
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




dla tęczowej to bez znaczenie , mowa raczej o brutal force .
A zakładanie że wszyscy dają hasła typu A3$^vVe3[]X jest raczej naiwnością .
Go to the top of the page
+Quote Post
DevonSix
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 12.04.2009

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


smile.gif No dobra, to co niby użyć zamiast md5? Niby można powydziwiać w stylu md5(crypt(md5(md5('asd')))) ale nie wiem czy to dobry pomysł jest?
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jednak mam parę pytań odnośnie cookies, auto logowania;

Najprościej byłoby session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual i ustawić czas na odpowiednio długi. winksmiley.jpg Do tego jeszcze jakiś losowy hash w sesji i dodatkowym ciastku, aby zweryfikować, czy ktoś SID-a nie wstrzyknie.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
bełdzio
post
Post #9





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


http://www.beldzio.com/autologowanie


--------------------
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 Aktualny czas: 20.08.2025 - 10:00