![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 21.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś napisałem prosty CRM który działał ale był skrajnie niebezpieczny, tzn nie ma żadnego filtrowania danych przesyłanych z formularzy ani też tych zapisywanych w bazie.
Teraz zająłem się właśnie kwestią bezpieczeństwa aby mój twór stał się w końcu przydatny. Na pierwszy ogień poszła kwestia panelu logowania i tu pytanie: czy sprawdzenia hasła i loginu jak poniżej jest Waszym zdaniem wystarczająco bezpieczne:
Zakładam że loginem jest adres e-mail a hasło nie może zawierać znaków \ / ' ` " \n \s |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Musisz się jeszcze dużo uczyć
Po pierwsze : if(isset($_POST['login']) || isset($_POST['haslo'])) -- wystarczy sprawdzić czy istnieje submit session_start(); -- dałeś dopiero po warunku , dlaczego ? Później powstają tematy, że sesja nie działa na wszystkich stronach. Otwieraj sesje najlepiej na początku dokumentu. Wiem, ze to logowanie i po logowaniu ta strona nie bedzie dostepna, ale moze robisz ten sam błąd w innych dokumentach $zapytanie = "SELECT * FROM biz_user WHERE p_login = '".trim($_POST['login'])."'"; -- napisałeś, że znasz się na atakach typu sql. Nie znasz sie ani troche. Przestudiuj dokładnie o co z nimi chodzi a zobaczysz jak powazną luke masz w tym miejscu. Funckja trim przed niczym Cię tutaj nie chroni. jeśli jesteś początkujący, to jeśli piszesz sprawdzenie jakiegoś formularza to zacznij najpierw od zdefiniowania zmiennych, np: $login = mysql_escape_string($_POST['login']); $haslo = "$_POST['haslo']; Jeśli nie uzywasz PDO, to przeflitruj dodatkowo login przez wyrażenie regularne - to chyba najpewniejszy sposób. Dopiero po sprawdzeniu zmiennych tworzysz warunek, gdzie jesli obie te zmienne sa ok , to dopiero pobierasz dane z bazy (IMG:style_emoticons/default/exclamation.gif) ! Hasła nie musisz sprawdzać. Każdy powinien miec takie hasło jakie chce. Z bazy danych sprawdzac tylko czy jest taki login w bazie i pobierasz jego hasło. Jeśli hasło zgadza sie z tym podanym z formularza, to tworzysz sesje Ten post edytował gitbejbe 16.09.2013, 09:51:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 00:07 |