Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ zabezpieczenie zalogowanego uzytkownika

Napisany przez: bialko0019 26.01.2016, 15:20:58

hej mam pytanie - zrobilem prosty skrypt logowania. Uzytkownik loguje sie, sprawdzam login i haslo czy pasuje w bazie danych (haslo kodowanie z sola md5 i sha1) i jesli jest okey - dodaje sesje w bazie danych (losowy ciag znakow) i dodaje ciasteczko z wartoscia tego losowego ciagu znakow. Warunek sprawdzjacy czyt ktos jest zalogowany, to sprawdzenie tego ciasteczka, czy wystepuje w bazie, jesli tak - to jaki user. Jesli sie znajduje, to do tego co znalazlo - jestes zalogowany. Jak to mozna jeszcze bardziej zabezpieczyc? (oprocz xss i sql inject typowych). Ciacho oczywiscie z httpOnly.

Napisany przez: redeemer 26.01.2016, 15:44:46

Używaj https://secure.php.net/manual/pl/function.password-hash.php i https://secure.php.net/manual/en/function.password-verify.php().

I pozwól PHP zająć się mechanizmem sesji, a nie wymyślaj go od nowa. https://secure.php.net/manual/en/session.configuration.php

Napisany przez: bialko0019 27.01.2016, 16:47:05

No okey, czyli trzymac w sesji zamiast w ciasteczku sesje? I tyle w mozliwosciach zabezpieczenia? Moze jakies inne procedury sie stosuje do zabezpieczania logowania?

Napisany przez: lukaskolista 27.01.2016, 17:12:17

A co jeszcze chcesz zabezpieczać? Hash powinien być na tyle długi, żeby nie dało się go w prosty sposób odgadnąć. Poza tym sesja powinna działać na zasadzie tokenów:
1. dostajesz token na 1 zapytanie
2. Jak wykonujesz zapytanie i podany token się zgadza, to generuje Ci nowy token
3. Wróć do pkt. 1

Do realizacji powyższego najlepiej użyj natywnego mechanizmu sesji + funkcji http://php.net/manual/en/function.session-regenerate-id.php.

Napisany przez: bialko0019 27.01.2016, 21:41:01

Dzięki! Już wdrażam smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)