![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
W celach naukowych piszę sobie CMS'a.
Mam tam między innymi panel admina. Logowanie przebiega tak: Na początku każdej strony jest session_start(); Logowanie: plik login.php dostaje od formularza postem login i haslo, login i hash hasła są sprawdzane w bazie danych, jeśli wszystko się zgadza tworzę $_SESSION['logged'] = 'yes'; I strona może wyświetlać 2 widoki - dla użytkownika zalogowanego i dla użytkownika niezalogowanego. Warunek zalogowania? Czy istnieje zmienna $_SESSION['logged'] i czy jest ustawiona na yes. Jeśli tak wyswietla się content dla zalogowanych, jeśli nie - wyświetla się content dla niezalgowanych, np. loginform. Wylogowanie: W skrócie: I pojawiają się 2 pytania... Czy jest to bezpieczne? Czy ktoś nie może sobie utworzyć zmiennej sesyjnej takiej jak podana i sie po prostu wbić? Gdzie przechowywać takie dane jak id zalogowanego usera? Przydatne przy np. zmianie hasła. Ten post edytował matiit 11.01.2010, 22:34:37 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
W zmiennej sesyjnej $_SESSION['agent'] zapisujesz nazwę przeglądarki użytkownika, której użytkownik zwykle nie zmienia w czasie trwania sesji. Natomiast bardzo prawdopodobne jest, że osoba atakująca (przechwytująca sesję) będzie miała inny nagłówek HTTP_USER_AGENT. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hm, ok, to jest chyba dobry pomysł (na pewno można jeszcze wiele rzeczy (; )
Jeszcze jedno... Można tworzyć client-side te zmienne sesyjne? I czemu jak stosuję rozwiązanie to pierwsze swoje to dopóki się nie wyloguje jestem zalogowany? nawet jak zamknę i włącze ponownie przeglądarkę? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Automatyczne wylogowanie po 30 minutach -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
może lepiej załóż 2 zmienne:
i je przyrównuj, możesz rozpoznawać użytkowników, jak ktoś zmieni hasło, to od razu go wyloguje etc... Ten post edytował Spirit86 11.01.2010, 20:26:28 -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzięki... poprzerabiałem już klasę autoryzacji... dodałem jeszcze przy sprawdzaniu w bazie danych żeby zwracało id usera i zapisywało w $_SESSION['user_id']
Edit, chociaż jeszcze "Można tworzyć client-side te zmienne sesyjne?" Ten post edytował matiit 11.01.2010, 22:34:15 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.06.2025 - 09:55 |