Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z logowaniem, opcja pamietaj mnie
barthek
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.12.2003

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


mozliwe ze ja to zle rozumiem, ale coz.. sytuacja wyglada nastepujaco:

skrypt logowania dziala tak, ze jezeli ktos zaznaczyl opcje 'pamietaj mnie' to tworzone jest ciasteczko z danymi potrzebnymi do zalogowania:
  1. <?php
  2. $dane = ($login.$haslo);
  3. setcookie ("dane", $dane,time()+3600*24*365);
  4. ?>


nastepnym razem jak wejdziemy na strone skrypt sprawdza czy ma ustawione ciasteczko. jezeli ma to pobiera dane i probuje sie zalogowac:
  1. <?php
  2. if(isset($_COOKIE["dane"]))
  3. {
  4. $dane = $_COOKIE["dane"];
  5. $login = substr($dane, 0, 32);
  6. $haslo = substr($dane, -32);
  7. }
  8. ?>


i to wszystko mi dziala! smile.gif problem pojawia sie przy wylogowywaniu.. mianowicie skrypt wylogowujacy wyglada tak:
  1. <?php
  2. setcookie ("dane", "",time()-3600*24*365);
  3. unset($_SESSION['login']);
  4. unset($_SESSION['haslo']);
  5. header("location:../index.php");
  6. ?>


dodam jeszcze ze w index.php na poczatku jest wlasnie includowany kod probujacy sie zalogowac poprzez dane uzyskane z ciasteczka..

problem jest tej natury, ze po nacisnieciu wyloguj i przekierowaniu do index.php automatycznie znowu mi sie loguje (pobierajac dane z ciasteczka), mimo ze przeciez teoretycznie cisteczko stracilo waznosc.. jezeli nie zaznacze opcji 'pamietaj mnie', czyli ciasteczka w ogole nie ma to wylogowywanie przebiega bezporblemowo..

jakies pomysly co tu jest nie tak?
z gory dziekuje..

edit: JEZELI NIE WIDZICIE TU BLEDU TOPOWIEDZCIE PRZYNAJMNIEJ JAK WY TAKIE RZECZY ROZWIAZUJECIE..

Ten post edytował barthek 20.02.2006, 08:47:00
Go to the top of the page
+Quote Post
Neotion
post
Post #2





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 13.09.2004

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


hymhym... Uzywasz $_SESSION do pobierania danych z ciasteczek?

Tak sie chyba nie robi, może się mylę.

Do danych z ciasteczek używa się $_COOKIE

i tak:
  1. // Zapamietanie:
  2. <?php
  3. $dane = $login.'<jakistamseparator>'.$haslo; // Proponuje dać jakiś dziki znak ASCII jako separator, unikalny żeby nie było pom
    yłek
  4. setcookie ("dane", $dane,time()+3600*24*365);
  5. ?>
  6.  
  7. // Pozniejsze logowanie
  8. <?php
  9. if($_COOKIE['dane']) 
  10. {
  11. $cookieDane = explode('<jakistamseparator>',$_COOKIE['dane']);
  12. $login = $cookieDane[0];
  13. $haslo = $cookieDane[1];
  14. }
  15. ?>


Pomogłem czy powiedziałem tylko to co juz wiedziałeś tongue.gif ?

Ten post edytował Neotion 19.02.2006, 21:11:05


--------------------
current: nexcite cms (0.2.5) running on top of netsource framework (0.5.3)

workbench: nsapi | php 5.1.2 | mysql 5.0.18 | phpmyadmin 2.9 rc1 | zend studio 5.2.0 | apache/2.2.0 (linux/suse)
Go to the top of the page
+Quote Post
Termit_
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 11.06.2005
Skąd: Gostyń

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


Z tym, że gorąco zalecam dodatkowe hashowanie hasła wysyłanego w ciasteczko, bo po przechwyceniu ciastka (a przecież może się to zdarzyć) może być 'zonk'...
Np. jeśli hasło było zakodowane md5, to dodaj do tego jeszcze hashowanie sha1.


--------------------
@nospor: trzymajcie się. Wszystko będzie dobrze!
Go to the top of the page
+Quote Post
Neotion
post
Post #4





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 13.09.2004

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


Co do hashowania wolałbym jakąś własną funkcję od hashowania bo SHA1 i MD5 z tego co czytałem nie są już za bardzo bezpieczne. Obecnie chyba tylko AES został, ale nie ma do niego gotowej funkcji w php sad.gif


--------------------
current: nexcite cms (0.2.5) running on top of netsource framework (0.5.3)

workbench: nsapi | php 5.1.2 | mysql 5.0.18 | phpmyadmin 2.9 rc1 | zend studio 5.2.0 | apache/2.2.0 (linux/suse)
Go to the top of the page
+Quote Post
barthek
post
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.12.2003

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


Cytat(Neotion @ 2006-02-19 22:10:43)
hymhym... Uzywasz $_SESSION do pobierania danych z ciasteczek?

nie no jasne ze nie smile.gif po prostu pozno posta dawalem i przez pomylke nie ta czesc kodu dalem..

co do tego problemu to juz go rozwiazalem - plik logout.php, ktory zawieral skrypt wylogowujacy, byl w innym katalogu niz index.php przez co nie potrafil zmienic daty waznosci ciasteczka smile.gif

Cytat(Termit_ @ 2006-02-19 22:32:04)
Z tym, że gorąco zalecam dodatkowe hashowanie hasła wysyłanego w ciasteczko, bo po przechwyceniu ciastka (a przecież może się to zdarzyć) może być 'zonk'...
Np. jeśli hasło było zakodowane md5, to dodaj do tego jeszcze hashowanie sha1.


taa... probowalem dane w ciasteczku XOR'owac unikalnym kulczem 64-znakowym, ale o ile wszystko niby dziala (jak sprawdzalem w osobnym kodzie php instrukcja pod instrukcja), to juz przy kodowaniu ciasteczka i pozniejszym jego odczytaniu w pewnym momencie zle to dzialalo (np pierwsze 50 znakow bylo OK, a pozostale 14 juz bral z kosmosu..).
postanowilem wiec to zostawic.. dlaczego? poniewaz co da komus zhashowany md5 login i haslo? jak wklepie to w formularz to zostanie to ponownie zhashowane i tyle mial hasla smile.gif

mam natomiast jeszcze jedno pytanie. teraz jezeli ktos mi sie wylogowuje (a wczesniej dal opcje 'pamietaj mnie') to usuwa ciasteczko - przez co juz go pamietac nie bedziemy smile.gif jak wiec zrobic, zeby po wylogowaniu sie - uzytkownik mogl sobie przegladac jeszcze strony witryny normalnie jako gosc, a po zamknieciu przegladarki i ponownym powrocie byl logowany automatycznie, czyli pamietany?
Go to the top of the page
+Quote Post
Neotion
post
Post #6





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 13.09.2004

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


Użyj sesji. Sesja jest usuwana czy już nie pamiętana po wyjściu z przeglądarki. Ja tak zawsze robie przy licznikach unikanych odwiedzin smile.gif

A co do MD5: jak komuś zależy to z tego co słyszałem idzie sobie z tym poradzić.


--------------------
current: nexcite cms (0.2.5) running on top of netsource framework (0.5.3)

workbench: nsapi | php 5.1.2 | mysql 5.0.18 | phpmyadmin 2.9 rc1 | zend studio 5.2.0 | apache/2.2.0 (linux/suse)
Go to the top of the page
+Quote Post
andrzejb
post
Post #7





Grupa: Zarejestrowani
Postów: 93
Pomógł: 1
Dołączył: 12.08.2005

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


Cytat(Neotion @ 2006-02-20 10:06:55)
A co do MD5: jak komuś zależy to z tego co słyszałem idzie sobie z tym poradzić.

demagogia, nie sluchajcie go smile.gif szkoda ze tylko slyszales ;>


--------------------
web lowcy.com.pl gg 1675677
Go to the top of the page
+Quote Post
Neotion
post
Post #8





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 13.09.2004

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


http://hacking.pl/5450 <- to o SHA1
http://www.hakin9.org/pl/attachments/md5_pl.pdf <- to o MD5

Ale to tylko o tworzeniu kolizji, nie odczytamy raczej z MD5 pierwotnej informacji.
Zwracam honor winksmiley.jpg


--------------------
current: nexcite cms (0.2.5) running on top of netsource framework (0.5.3)

workbench: nsapi | php 5.1.2 | mysql 5.0.18 | phpmyadmin 2.9 rc1 | zend studio 5.2.0 | apache/2.2.0 (linux/suse)
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 - 07:58