Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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?
(IMG:http://forum.php.pl/style_emoticons/default/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
 
Start new topic
Odpowiedzi (1 - 8)
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) .

3. md5 starczy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

4. Dopóki nie będziesz sprawdzał egzystencji ciasteczka zrobionego tym kodem to nic się nie stanie (IMG:http://forum.php.pl/style_emoticons/default/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ą (IMG:http://forum.php.pl/style_emoticons/default/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%)
-----


(IMG:http://forum.php.pl/style_emoticons/default/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. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Do tego jeszcze jakiś losowy hash w sesji i dodatkowym ciastku, aby zweryfikować, czy ktoś SID-a nie wstrzyknie.
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 10:40