Marcin K.

Marcin K. IT Solutions

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Znacie może jakiś lepszy sposób rozwiązania opcji "zapamiętaj mnie" podczas logowania niż zapisywanie w ciastku loginu użytkownika oraz kodu wygenerowanego podczas logowania(np. md5 aktualnego czasu) i sprawdzania tego podczas wejścia na stronę i ustawiania odpowiednio sesji?

konto usunięte

Temat: Funkcja "zapamiętaj mnie podczas logowania".

tak, znamy :) własny system logowania oparty na bazie danych.
i zapisujesz w bazie hashkey sesyjny oraz ustalasz tam czy ma pamiętać czy nie.

Tak np. robi GoldenLine czy nasza-klasa ;)Jakub Świegot edytował(a) ten post dnia 02.06.08 o godzinie 12:57
Jarosław Grzelak

Jarosław Grzelak Software Engineer,
StepStone Services
Sp. z o.o.

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Jakub Świegot:
tak, znamy :) własny system logowania oparty na bazie danych.
i zapisujesz w bazie hashkey sesyjny oraz ustalasz tam czy ma pamiętać czy nie.

Tak np. robi GoldenLine czy nasza-klasa ;)

Nie rozumiem jak ma niby to działać? Hashkey - masz na myśli hash(session_id)?
Jakub Korupczyński

Jakub Korupczyński Software Developer

Temat: Funkcja "zapamiętaj mnie podczas logowania".

No zaraz, ale co ma baza do tego problemu. To gdzie zapisujesz dane o logowaniu to już Twoja sprawa, a tak czy inaczej musisz przecież jakoś połączyć użytkownika z sesją w bazie, czy to przez link, czy ciasteczko.

Powiem szczerze że nie przepadam za tego typu rozwiązaniami, bo tu dużo zależy od świadomości użytkowników, która zazwyczaj jest zbyt mała. Np mamy problem gdy jakiś użytkownik się "zapamięta" na nie swoim komputerze :)Jakub Korupczyński edytował(a) ten post dnia 02.06.08 o godzinie 13:15
Marcin K.

Marcin K. IT Solutions

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Masz na myśli to, że gdy użytkownik podczas logowanie zaznacza "zapamiętaj mnie" to klucz sesyjny jest zapisywany w bazie i w ciastku?

konto usunięte

Temat: Funkcja "zapamiętaj mnie podczas logowania".

kazdy szanujacy sie serwis internetowy robi logowanie oparte na bazie danych. jesli ktos mi nie wieryz, to se pogooglujcie. a jak to ma dzialac - tez se pogooglujcie ;)

konto usunięte

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Jakub Korupczyński:
No zaraz, ale co ma baza do tego problemu.
To gdzie zapisujesz dane o logowaniu to już Twoja sprawa,

To co w pliku zapiszesz ?

Hash chyba powinien być kompletnie losowy, żeby ktoś go nie mógł odtworzyć.
Marcin K.

Marcin K. IT Solutions

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Jakub Świegot:
kazdy szanujacy sie serwis internetowy robi logowanie oparte na bazie danych. jesli ktos mi nie wieryz, to se pogooglujcie. a jak to ma dzialac - tez se pogooglujcie ;)

To jest oczywiste, że na bazie, jednak chodzi o to, że jak użytkownik podczas logowania do serwisu zaznacza opcję "zapamiętaj mnie" aby nie musiał się logować podczas kolejnych wizyt, to klucz musi być zapisany również w ciastku innej opcji nie widzę.
Jakub Korupczyński

Jakub Korupczyński Software Developer

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Michał Wujas:
Jakub Korupczyński:
No zaraz, ale co ma baza do tego problemu.
To gdzie zapisujesz dane o logowaniu to już Twoja sprawa,

To co w pliku zapiszesz ?

Ja robię to też na bazie, bo jest to dużo wygodniejsze i łatwiej to powiązać z resztą danych.

Natomiast jak ktoś zrobi to odpowiednio na plikach to też będzie dobrze. Oczywiście jak to odpowiednio zabezpieczy.

A wracając do tematu, to tak, nie powiążesz inaczej komputera użytkownika z odpowiednim loginem w bazie, musisz mu wysłać jakiś klucz, oczywiście wygenerowany losowo, który zostanie u niego zapisany. Może jednak nie klucz sesji, tylko coś dodatkowego raczej, tak żeby sesja działała jak sesja, czyli kończyła się po odłączeniu/wylogowaniu/wygaśnięciu itp.Jakub Korupczyński edytował(a) ten post dnia 02.06.08 o godzinie 13:47
Hubert Wesołowski

Hubert Wesołowski Człowiek od krycia
dachów podczas
deszczu (mokrej
roboty).

Temat: Funkcja "zapamiętaj mnie podczas logowania".

nooo nie do konca na bazie danych.
wazne jest to aby dane byly zapisane po stronie serwera a nie klienta, a czy w bazie czy w pliku - decyzja powinna zalezec od stosunku wydajnosc aplikacji/koszt wytworzenia (operacje na malych plikach sa szybsze niz na bazie [gdy np. 1 sesja = 1 plik]).
jesli chcesz koniecznie zapamietywac uzytkownikow dodaj rowniez sprawdzenie IP - co prawda co jakis czas uzytkownik zostanie wylogowany, ale za to mocno utrudni to zycie wlamywaczowi. no i polecam bardziej cookie niz url - jednak trudniej wykrasc ;).
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Hubert Wesołowski:
wazne jest to aby dane byly zapisane po stronie serwera a nie klienta,

Musza byc zapisane i po stronie serwera i po stronie klienta! Jak inaczej chcesz zapamietac uzytkownika?
Hubert Wesołowski

Hubert Wesołowski Człowiek od krycia
dachów podczas
deszczu (mokrej
roboty).

Temat: Funkcja "zapamiętaj mnie podczas logowania".

w sesji zazwyczaj trzyma sie sporo danych, ich nieuprawniona modyfikacja moze czasem przyniesc trudne do przewidzenia skutki.

po stronie klienta zapisujesz tylko 1 parę danych: np. id sesji i login. resztę po stronie serwera. dane po stronie klienta maja sluzyc tylko odnalezieniu sesji na serwerze, niczemu wiecej. parę danych trudniej odgadnac niz pojedyncze id sesji. ew. mozna trzymac id sesji podpisane niejawnym kluczem, ale to tez oznacza trzymanie 2 wartosci.

moze nieprecyzyjnie sie wyrazilem - chodzilo o to, aby nie dopiscic do sytuacji w ktorej np. sa wyswietlane jakies dane wylacznie na podstawie filtru pobranego z cookie.

konto usunięte

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Hubert Wesołowski:
w sesji zazwyczaj trzyma sie sporo danych, ich nieuprawniona modyfikacja moze czasem przyniesc trudne do przewidzenia skutki.

po stronie klienta zapisujesz tylko 1 parę danych: np. id sesji i login. resztę po stronie serwera. dane po stronie klienta maja sluzyc tylko odnalezieniu sesji na serwerze, niczemu wiecej. parę danych trudniej odgadnac niz pojedyncze id sesji. ew. mozna trzymac id sesji podpisane niejawnym kluczem, ale to tez oznacza trzymanie 2 wartosci.

moze nieprecyzyjnie sie wyrazilem - chodzilo o to, aby nie dopiscic do sytuacji w ktorej np. sa wyswietlane jakies dane wylacznie na podstawie filtru pobranego z cookie.

W sesji zazwyczaj trzyma się tylko identyfikator zalogowanego użytkownika ;)
Michał Pawłowski

Michał Pawłowski Software Development
Engineer

Temat: Funkcja "zapamiętaj mnie podczas logowania".

ja tam trzymam 50 znakowy string... i po nim identyfikuje sesje w bazie :P .. i jeszcze po ip ;) ... i trzeba znac sekretny uscisk reki i umiec odpowiednio pukac :P ... (pierwsze 3 na powaznie ;)

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Musi byc zapisane po stronie serwera i usera.

Nawet jesli wejdziesz na szanujacy sie (fajne to okreslenie) serwis i wyczyscisz sobie cookies, sessions itd to 'szanujacy sie serwis' nie bedzie miec pojecia kim jestes.

Jesli juz ustalilismy ze zapisujemy na serwerze i po stronie usera to pozostaje okreslnie czy sessions, DB, sessions to DB no i user cookies.
Hubert Wesołowski

Hubert Wesołowski Człowiek od krycia
dachów podczas
deszczu (mokrej
roboty).

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Stanisław Głogowski:
W sesji zazwyczaj trzyma się tylko identyfikator zalogowanego użytkownika ;)

mozesz rozwinac?

konto usunięte

Temat: Funkcja "zapamiętaj mnie podczas logowania".

$_SESSION['login'] = $user_id;

;-)))

konto usunięte

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Jakub Świegot:
$_SESSION['login'] = $user_id;

;-)))

Dzięki Jakubie właśnie o to chodziło ;)
Jakub Korupczyński

Jakub Korupczyński Software Developer

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Klucz jednorazowy identyfikujący sesje a nie login. Login za łatwo zgadnąć a niech np dany użytkownik się nie wyloguje z systemu i co wtedy. Poza tym sprawdzanie paru rzeczy, takich jak ip, przeglądarka itp. Może ip w mniejszym stopniu bo to jest zmienne ale reszta powinna się nie zmieniać.
Hubert Wesołowski

Hubert Wesołowski Człowiek od krycia
dachów podczas
deszczu (mokrej
roboty).

Temat: Funkcja "zapamiętaj mnie podczas logowania".

Stanisław Głogowski:
Jakub Świegot:
$_SESSION['login'] = $user_id;

;-)))

Dzięki Jakubie właśnie o to chodziło ;)

1) widze ze dla Ciebie pojecie sesji to tablica $_SESSION w PHP. czyli jesli ktos korzysta z wlasnych mechanizmow to nie obsluguje sesji?!?
2)czyli wystarczy ze zgadne czyjes $user_id i moge sie wbic na jego konto?
nice :D.



Wyślij zaproszenie do