![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 28.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałem napisać prosty skrypt logowania, oparty o sesje. Pomyślałem jednak, że jeżeli zostawię tylko sesje, to przy każdej kolejnej wizycie użytkownik będzie musiał się logować na nowo. Wtedy pomyślałem o cookies. Napisałem coś takiego w pliku login.php (on dostaje dane z panelu logowania):
* id nie jest pobierane do formularza, będzie mi później służył do czegoś innego, ale to nie ważne. OK. W tym momencie mam (o ile skrypt nie ma błędów ![]()
Zastanawia mnie tylko jedna rzecz - czy jeśli użytkownik pogrzebie w plikach przeglądarki nie będzie w stanie zmienić loginu, np. na login administratora, przez co uzyskać możliwość zalogowania się z jego uprawnieniami? Teoretycznie można by używać sesji zalogowany - 1 lub 0, jednak skąd wówczas skrypt ma wiedzieć jako kto dany użytkownik jest zalogowany? Pozdrawiam i z góry wielkie dzięki za pomoc ![]() //UPDATE: Przemyślałem jeszcze raz sprawę i chyba sam znalazłem rozwiązanie. Przecież, o ile user mógłby zmienić login w plikach cookies (bo inne loginy zna), to z hasłami tak już nie jest. Więc może zrobić tak, by skrypt (ten w header.php) działał następująco : 1. Sprawdzenie czy w cookies jest login i przypisanie jego wartości do zmiennej. 2. Sprawdzenie czy w cookies jest hasło i przypisanie jej wartości do zmiennej. 3. Sprawdzenie w bazie czy istnieje taki login w tabeli users. 4. Jeżeli login istnieje - sprawdź czy jego hasło zgadza się z tym ze zmiennej. 5. Jeżeli wszystko się zgadza - zarejestruj sesję o zalogowaniu. Czy coś takiego będzie działać prawidłowo i nie będzie podatne na ataki gimnazjalistów? Pozdrawiam Ten post edytował baripoland 21.07.2011, 02:39:59 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
1. w cookie co najwyżej powinno być id + hash - NIC WIĘCEJ żadnego hasła ani loginu, oszalałeś?!
2. Były ostatnio ze 3 tematy na temat "Remember Me" gdzie masz WSZYSTKO wyjaśnione i względnie bezpiecznie. Dobrze że zapytałeś bo byś popełnił mega gafę, hasło w md5 bez soli to jest max 15 minut gdy ma się CUDA, przy cieższych kilka dni, lub 15$ w chmurze w kilka minut. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 28.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. Znalazłem podobny temat w którym ktoś zasugerował stworzenie to samo co ty (hash). Jeżeli dobrze rozumiem ma to działać następująco :
1. Mam tabelkę token z id i hashem. 2. W skrypcie logowania, jeżeli user zaznaczył "zapamiętaj hasło" skrypt generuje losowy ciąg znaków i zapisuje go wraz z id usera do tabelki token. 3. W pliku header dodaje kodzik który, jeżeli w cookie znajdzie ten hash - szuka odpowiedniego id usera w tabeli token. 4. Jeżeli wszystko się zgadza, skrypt automatycznie loguje usera o takim id. 5. Jeżeli zalogowany użytkownik kliknie "wyloguj" wpis z tabelki token zostaje usunięty. Pozdrawiam. Ten post edytował baripoland 21.07.2011, 03:44:17 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:32 |