konto usunięte

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

Wojciech Sznapka:

masz roota

Jak szybko można przejść od logowania do serwisu do roota na serwerze ;-)Michał W. edytował(a) ten post dnia 08.07.08 o godzinie 17:44
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

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

No ;-) Chodziło mi raczej o włamanie na serwer bezpośrednio, a nie przez logowanie ;-)
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

No ale ja tu piszę w kontekście bazy danych, nie zrozum mnie źle, ale we włamach do bazy jest siła i to one głownie są celem e-rabunków.
Jarosław Lisicki

Jarosław Lisicki programista,
Gadu-Gadu

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

Jeżeli chodzi o sesje to osobiście bym zrobił następująco.
Przykladowo
CREATE TABLE `sessions` (
`session_id` varchar(32) NOT NULL,
`user_id` int(11) NOT NULL,
`session_data` blob,
`valid_to` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
`remember_me` tinyint(1) default NULL,
PRIMARY KEY (`session_id`)
)

1 - sesja "zwykła" czas trzymania w bazie max. np. 12h
2 - sesja "pamiętaj mnie" czas trzymania w bazie np. 1 miesiąc

Obsługa
1 - przy zapisie danych sesyjnych ustawiamy updated_at na time(), valid_to = time() + 12h. Jezeli dane sesyjne nie uległy zmianie w danym requescie to sprawdzamy czy time() - updated_at > 1h, jezeli tak to update jak przy zmianie danych.

2 - zapisujemy sesje raz z valid_to na 1 miesiac do przodu i fajrant, przy update zachowujemy poacztkowe valid_to

Wydaje sie ze ciezko, zeby ktos siedzial dluzej niz 12 godzin bezczynnie i miał potem pretensje ze go wylogowalo.

Jeżeli ktoś traktuje sesje jak cache to rzeczywiście trzymanie tego będzie jakie będzie przy każdym requescie zapis do tabeli sessionsJarosław Lisicki edytował(a) ten post dnia 08.07.08 o godzinie 20:32
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

Jakoś to do mnie nie przemawia, te trzymanie danych związanych z autologonem ("remember_me") i niepotrzebne nadmiarowe pole "updated_at", skoro masz "valid_to". "valid_to" całkowicie wystarczy do obsłużenia nawet tego co Ty chcesz osiągnąć - użytkownik się zalogował z "remember_me" to automatycznie wydłużasz "valid_to".Alan B. edytował(a) ten post dnia 08.07.08 o godzinie 21:20
Jarosław Lisicki

Jarosław Lisicki programista,
Gadu-Gadu

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

Alan B.:
Jakoś to do mnie nie przemawia, te trzymanie danych związanych z autologonem ("remember_me") i niepotrzebne nadmiarowe pole "updated_at", skoro masz "valid_to".

Tak z valid_to mozna zrezygnowac. Co do obslugi to majac samo valid_to bez remember_me nie jestes w stanie stwierdzic o ile wydluzyc valid_to.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

remember_me i tak musi być jako ciastko, nie?
Jarosław Lisicki

Jarosław Lisicki programista,
Gadu-Gadu

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

Alan B.:
remember_me i tak musi być jako ciastko, nie?
Czemu? wystarczy sam session_id.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

Jarosław Lisicki:
Czemu? wystarczy sam session_id.

@Jarosławie, musisz coś trzymać po stronie klienta, żeby go rozpoznać po tym jak zamknie przeglądarke i zgubi sesję - a tym samym staje się to takim remember me.
Widzę poważny błąd w Twojej logice.
Jarosław Lisicki

Jarosław Lisicki programista,
Gadu-Gadu

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

Alan B.:
Jarosław Lisicki:
Czemu? wystarczy sam session_id.

@Jarosławie, musisz coś trzymać po stronie klienta, żeby go rozpoznać po tym jak zamknie przeglądarke i zgubi sesję - a tym samym staje się to takim remember me.
Widzę poważny błąd w Twojej logice.

Ok może się nie precyzyjnie wyrazilem session_id jako ciastko.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

To czemu pisałeś?
Jarosław Lisicki:
Tak z valid_to mozna zrezygnowac. Co do obslugi to majac samovalid_to bez remember_me nie jestes w stanie stwierdzic o ilewydluzyc valid_to.

Przedłużasz valid_to jeżeli nie ma ciastka z session_id, jeżeli jest zostawiasz w spokoju i pozwalasz wygasnąć sesji wraz z ciastkiem.
Jarosław Lisicki

Jarosław Lisicki programista,
Gadu-Gadu

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

Alan B.:
To czemu pisałeś?
Jarosław Lisicki:
Tak z valid_to mozna zrezygnowac. Co do obslugi to majac samovalid_to bez remember_me nie jestes w stanie stwierdzic o ilewydluzyc valid_to.

Przedłużasz valid_to jeżeli nie ma ciastka z session_id, jeżeli jest zostawiasz w spokoju i pozwalasz wygasnąć sesji wraz z ciastkiem.
Nie rozumiem. Nigdzie nie napisalem ze remember_me ma wystapic jako ciastko.

Po stronie przegladarki ciastko z session_id.
dla 1 wariantu czas zycia do konca sesji przegladarki
dla 2 wariantu czas zycia 1 miesiac (nie przedluzane trzymajac sie mojego wariantu)
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

Czyli ciastko ustawiasz za każdym razem?
W takim razie powinno działać.... ale i tak mi sie nie podoba takie rozwiązanie (bez urazy Jarosławie) i uważam, że mógłbyś zrezygnować z "updated_at"

Pozdrawiam, Alan
Jarosław Lisicki

Jarosław Lisicki programista,
Gadu-Gadu

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

Alan B.:
Czyli ciastko ustawiasz za każdym razem?
Tak jak napisalem ciastko ustawiam raz.
1 - do konca sesji przegladarki
2 - waznosc miesiąc do przodu.

mógłbyś zrezygnować z "updated_at"

moglbym :) ale nie wiem czy się dam przekonać. Muszę się jeszcze zastanowić.

Pozdr.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

Jarosław Lisicki:
Tak jak napisalem ciastko ustawiam raz.
[...]

Nom, ale niezależnie, czy ktoś zaznaczył "remember me", czy nie - o to mi chodziło.
Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

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

Wojciech Sznapka:

bo jak włamujesz się na serwer (masz roota), to już tam jesteś i już masz sesje, a jak kolejnym krokiem jest włamanie się do bazy (chyba, że wystawisz se ją na świat)

Pod warunkiem , że baza jest na osobnym host'cie , bo jak lokalnie to cd /var/lib/mysql i czytamy .

Czytam temat drugi raz i cały czas zastanawiam się jak zniszczyć sesję po zamknięciu przeglądarki , a przed jej ponownym otwarciem jak to jest w przypadku tablicy $_SESSION .Adrian Zdziechowicz edytował(a) ten post dnia 18.07.08 o godzinie 18:35

konto usunięte

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

Chyba nikt jeszcze nie proponował tu takiego rozwiązania: trzymać sesje opierając się nie na SESSION_ID w ciastku, a oferować ceertyfikat X.509, którym klient się posługuje dla autoryzacji.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

Jarosław Fedewicz:
Chyba nikt jeszcze nie proponował tu takiego rozwiązania: trzymać sesje opierając się nie na SESSION_ID w ciastku, a oferować ceertyfikat X.509, którym klient się posługuje dla autoryzacji.

ale to jest certyfikat certyfikat :) może i niekwalifikowany (kwalifikowany 400zł), ale z tego co wiem i tak trzeba go wyrobić najpierw

konto usunięte

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

Czemu, może się generować na stronie serwera, a serwer już może sam sobie zaufać jako CA. Tak naprzykład zrealizowano autoryzację w systemie WebMoney.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

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

Nie wiem, zwracam honor.. certyfikaty to nie moja broszka.



Wyślij zaproszenie do