Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak zabezpieczyć logowanie
lobopol
post
Post #1





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Czy ktoś mógłby mnie nakierować na tutorial w którym przedstawiono by mechanizm logowania z zabezpieczeniem, że jeżeli ktoś się loguje z innej przeglądarki/adresu ip to następuje wylogowanie (usunięcie sesji) we wszystkich pozostałych przeglądarkach/adresach?

Czyli sytuacja wygląda tak loguje się używając firefoxa, coś robię. wchodzę na stronę przez opere (loguje się oczywiście na to samo konto) i następuje wylogowanie w firefoksie.
Go to the top of the page
+Quote Post
DiH
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


Ja zrobiłbym to tak:
Przy logowaniu uzytkownika do bazy dopisujemy godzinę jego zalogowania. Następnie dodajemy tą godzinę do zmiennej, lub przekazujemy w adresie. Potem na stronie dodajemy if'a sprawdzającego czy godzina z bazy jest identyczna z tą w zmiennej. Jeżeli jest inna, to znaczy, że ktoś inny zalogował się na to konto.

Go to the top of the page
+Quote Post
lobopol
post
Post #3





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


W łatwy sposób można się pod kogoś podszyć, ale już mam pomysł zapiszę w bazie ip logowania i przeglądarkę i będę sprawdzał czy się nie zmienia.
Go to the top of the page
+Quote Post
emtiej
post
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


A o sesjach i cookies to wy nie słyszeliście?

Cytat
Ja zrobiłbym to tak:
Przy logowaniu uzytkownika do bazy dopisujemy godzinę jego zalogowania. Następnie dodajemy tą godzinę do zmiennej, lub przekazujemy w adresie. Potem na stronie dodajemy if'a sprawdzającego czy godzina z bazy jest identyczna z tą w zmiennej. Jeżeli jest inna, to znaczy, że ktoś inny zalogował się na to konto.


Albo ta sama osoba wylogowała się, bo była w kafejce i przyszła do domu, po czym znów chciała się zalogować...

Cytat
W łatwy sposób można się pod kogoś podszyć, ale już mam pomysł zapiszę w bazie ip logowania i przeglądarkę i będę sprawdzał czy się nie zmienia.


I ta sama sytuacja jak i powyżej... użytkownicy neostrady mają zmienne IP, a wielu użytkowników takich jak ja np. korzysta z kilku przeglądarek

http://webhosting.pl/Jak.zrobic.w.PHP.system.logowania

Naturalnie logowanie na samych sesjach i cookies nie są całkowicie bezpieczne, ale na pewno to lepsze niż te wasze metody (IMG:style_emoticons/default/biggrin.gif) . Większe serwisy internetowe, aby zapewnić bezpieczeństwo stosują protokoły ssl(czyli protokoły szyfrowane, darmowy to openSSL - więcej info w manualu php)

Ten post edytował emtiej 31.01.2010, 14:43:59
Go to the top of the page
+Quote Post
DiH
post
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


Cytat
Albo ta sama osoba wylogowała się, bo była w kafejce i przyszła do domu, po czym znów chciała się zalogować...

Tyle, że przecież ten if o którym pisałem nie eliminowałby możliwości zalogowania się, tylko podczas próby zrobienia czegokolwiek na "starszym" logowaniu, użytkownik zostałby wylogowany, bo jego data nie zgadzałaby się z tą w bazie. A co do sesji... cóż, czasami trudno zauważyć najprostrze rozwiązanie.

Pozdrawiam
Go to the top of the page
+Quote Post
Blame
post
Post #6





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Cytat(emtiej @ 31.01.2010, 14:42:50 ) *
I ta sama sytuacja jak i powyżej... użytkownicy neostrady mają zmienne IP, a wielu użytkowników takich jak ja np. korzysta z kilku przeglądarek

IMHO nie masz racji. Zabezpieczenia logowania powinny chronić przed tzw. przechwyceniem sesji i zapisywanie ip i przeglądarki logującego się użytkownika i sprawdzanie ich na bieżąco jest na to najlepszym sposobem. Piszę w ten sposób bo wydaje mi się, że chcecie jakimś cudem zezwolić na logowanie tylko prawowitemu użytkownikowi nawet jeśli inna osoba zna jego hasło a to że ktoś go nie potrafi upilnować, wszędzie ma takie same i nigdy go nie zmienia to już nie problem administratora/webmastera.
Go to the top of the page
+Quote Post
lobopol
post
Post #7





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Ok cały mechanizm logowania mam zrobiony, teraz staram się tylko wyeliminować problem z 2 osobami zalogowanymi na jedno konto, ale jak już napisałem zrobię to mniej więcej tak:
user 1 loguje się zapytanie do bazy jaki był ostatni wpisany ip i przeglądarka dla tego usera, jeżeli jest inne to kolejne zapytanie zamieniające przeglądarkę i ip na te aktualne
user 1 jest zalogowany i na każdej stronie leci zapytanie do bazy czy nie zmieniła się przeglądarka albo ip, jeżeli tak to wylogowuje go z konta
user 2 loguje się na konto sprawdzenie ip/browser i zamiana
user 1 przy sprawdzeniu zostaje wylogowany
Go to the top of the page
+Quote Post
scorpion_1982
post
Post #8





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 10.12.2007
Skąd: Nowy Sącz

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


Cytat(emtiej @ 31.01.2010, 14:42:50 ) *
A o sesjach i cookies to wy nie słyszeliście?


http://webhosting.pl/Jak.zrobic.w.PHP.system.logowania



Naturalnie logowanie na samych sesjach i cookies nie są całkowicie bezpieczne, ale na pewno to lepsze niż te wasze metody (IMG:style_emoticons/default/biggrin.gif) . Większe serwisy internetowe, aby zapewnić bezpieczeństwo stosują protokoły ssl(czyli protokoły szyfrowane, darmowy to openSSL - więcej info w manualu php)


emtiej a słyszałeś o bezpieczeństwie skryptów pisanych pod bazę sql (IMG:style_emoticons/default/questionmark.gif) , jeśli byś słyszał to nie podał byś tak głupiego kursu który nie jest nawet podstawami, nie będę pisał dlaczego bo jeśli ktoś zna php dla niego jest to oczywiste.





Tego kursu nie polecam, ani początkującym ani dzieciom. nadaje się tylko dla osób które chcą poświecić stronę do testów, to proszę bardzo.

Kolejna twoja wypowiedz dotycząca:

Cytat(emtiej) *
Naturalnie logowanie na samych sesjach i cookies nie są całkowicie bezpieczne


Jak masz zamiar napisać logowanie nie używając sessji ?, sesje nie są bezpieczne ale jeśli naniesie się odpowiednie poprawki fix itp. to stają się dość dobrym zabezpieczeńiem, cookies napewno nie jest bezpieczeństwem bo jest Clien-Side czyli jest wysyłany i odbierany od klienta, dlatego opierając logowanie na sesji. mamy większe bezpieczeństwo.

2. Sesje zawierają kilka błędów jak np. numer który ma być losowy nie do końca nim jest.

3. Standardowo mają długi okres wygasania co niesie niebezpieczeństwo.

4. Jeśli ktoś ukradnie nam numer sesji na której jesteśmy zalogowani to może wejść na konto nie podawając danych.

Dlatego należy wymusić wygasanie sesji co kilka min, w serwisach przy zmianie hasła należy uwzględnić by było wymagane stare hasło by można było wprowadzić nowe. itp.

Nie będę się rozpisywał na ten temat bo na temat bezpieczeństwa można by napisać konkretny artykuł be nawet książkę.

Pozdrawiam.

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/kategoria/bezpieczenstwo/logowanie
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: 16.09.2025 - 17:21