![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 18.09.2007 Ostrzeżenie: (0%)
|
Witam. Stworzyłem system logowania i chciałbym, abyście sprawdzili, czy jest w miarę szczelny. Dane do logowania osadziłem w skrypcie na sztywno tj. login admin, hasło 123 - dane te będą pobierane z bazy danych oczywiście z zabezpieczeniem przed sql injection. Teraz jednak chodzi mi o sam system logowania.
login.php
template/login_form.php Jak widać na początku skryptu generowany jest losowy identyfikator sesji, w przypadku gdyby został w jakiś sposób skradziony dodałem jeszcze porównywanie IP, jeśli się nie zgadza logged() zwraca false. Ten post edytował MGreg 6.01.2009, 20:23:38 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 14 Dołączył: 13.01.2008 Skąd: Birmingham Ostrzeżenie: (0%)
|
Za każdym odświeżeniem strony zmieniasz ID sesji. Nie kasują Ci się za każdym razem dane? d;
Dwa. Co jeśli ktoś ma proxy zmieniające IP co odświeżenie strony? Trzy. Przy wylogowaniu wystarczy unset($_SESSION['logged']);. Cztery. Jak sprawdzasz czy funkcja została wykonana wystarczy if(funkcja()). |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 18.09.2007 Ostrzeżenie: (0%)
|
Zmieniłem trochę cały system, jeśli ktoś może to prosiłbym posprawdzać czy jest w miarę bezpieczny. Jeśli występuje jakaś dziura to prosiłbym byście mi napisali. Byście wszystkie sesje dokładnie widzieli dodałem wyświetlanie całej tablicy $_SESSION.
Ten post edytował MGreg 15.01.2009, 18:32:23 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 4 Dołączył: 6.08.2006 Skąd: Lublin Ostrzeżenie: (0%)
|
Masz podatność na ataki typu session fixation, poza tym ustaw sobie na początku skryptu error_reporting(E_ALL)...
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 18.09.2007 Ostrzeżenie: (0%)
|
Skorzystałem za artykułu na stronie i na początku w.w skryptu dodałem
Chyba session fixtation mamy już z głowy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cały skrypt wygląda teraz tak:
Jakie mamy zabezpieczenia? - regeneracja identyfikatora sesji po 10 rządaniach - zakończenie sesji po 30 minutach + jeśli można to uznać za zabezpieczenie - zakończenie sesji po 5 minutach bezczynności Ten post edytował MGreg 15.01.2009, 19:07:32 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%)
|
nie potrzebnie w 42 dajesz addslashes
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 18.09.2007 Ostrzeżenie: (0%)
|
Hehe, dodałem ten addslashes by później nikt nie mówił o braku filtrowania danych. Akurat ten fragment kodu jest na sztywno, w jego miejscu pojawi się pobieranie danych z bazy danych wraz z mysql_real_esape_string();
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 23:05 |