Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Kilka pytań odnośnie bezpieczeństwa i filtracji danych.
arkos
post 11.02.2012, 18:06:06
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 24.12.2009

Ostrzeżenie: (20%)
X----


Witajcie, mam kilka pytań odnośnie bezpieczeństwa, w PHP i filtracji danych.
Od razu powiem na wstępnie, że przeczytałem całą książkę: "PHP5 Bezpieczne programowanie J.Ross, wydawnictwa Helion", oraz wiele wiele stron poświęconych bezpieczeństwu. Ale kto pyta nie błądzi smile.gif

A więc moje pierwsze pytanie, może trochę głupie no ale...:
Przycisk wysyłający formularz, i po którym jest sprawdzane w PHP, czy został wsyłany:
  1. <input type="submit" name="register" value="Zarejestruj się">

Sprawdzanie, w PHP:
  1. if(isset($_POST['register'])){ echo 'Akcje po wysłaniu'; }

Czy takie coś jest bezpieczne, czy w taki sposób ktoś może wstrzyknąć tutaj jakiś kod, czy muszę jeszcze jakoś zmienną $_POST['register'] filtrować?

Przy każdym wysyłaniu formularza sprawdzam dane, w taki sposób:
  1. $login = $_POST['login'];
  2. $pass = $_POST['pass'];
  3. $pass2 = $_POST['pass2'];
  4. if(!isset($login)) { info_blad('Podaj login'); }
  5. elseif(!preg_match('/^[0-9a-zA-Z_]*$/i', $login)){ info_blad('Błędne znaki w loginie!'); }
  6. elseif(strlen($login)<5) { info_blad('Podaj dłuższy login'); }
  7. elseif(strlen($login)>50) { info_blad('Podaj krótszy login'); }
  8. elseif(num_rows('`users` WHERE `login`="'.$login.'"') >= 1) { info_blad('Login jest zajęty); }
  9.  
  10. elseif(!isset($pass)) { info_blad('Podaj hasło'); }
  11. elseif(!preg_match('/^[0-9a-zA-Z!@#%^&*()-_=+,.]*$/i', $pass)){ info_blad('Błędne znaki w haśle'); }
  12. elseif(strlen($pass)<6) { info_blad('Podaj dłuższy login'); }
  13. elseif(strlen($pass)>50) { info_blad('Podaj krótszy login'); }
  14. elseif($pass!=$pass2) { info_blad('Hasła się nie zgadzają'); }
  15. ....
  16. else{ echo 'akcje po poprawnym sprawdzeniu danych, dodanie do bazy'; }

Czy sprawdzanie takie jest zarówno bezpieczne jak i również optmalne pod względem wydajności, taki typ stosuję w każdym formularzu na stronie, a jest ich sporo.

A może napisać jakąś klasę do usprawnienia tego procesu, niestet z klasami niezabardzo daję sobie radę?
Tak, aby dane były sprawdzane, np. w taki sposób:
  1. $sprawdz = new post_sprawdz();
  2. $sprawdz_dane -> liczby = $_POST['numer_domu']; // komunikat o ew. błędzie
  3. $sprawdz_dane -> znaki_az = $_POST['imie']; // komunikat o ew. błędzie
  4. itd.
  5. // jeżeli wszystko się zgadza
  6. echo 'akcje dodania danych do bazy, np.';


Pozdrawiam, i liczę na Wasze rady i propozycje smile.gif

Ten post edytował arkos 11.02.2012, 19:07:30
Go to the top of the page
+Quote Post

Posty w temacie
- arkos   [PHP] Kilka pytań odnośnie bezpieczeństwa i filtracji danych.   11.02.2012, 18:06:06
- - ActivePlayer   1. przed wstawieniem danych do bazy użyj mysql_esc...   11.02.2012, 18:27:06
- - arkos   ActivePlayer, z góry dzięki za odpowiedź. Tak, oc...   11.02.2012, 18:36:09
- - wNogachSpisz   W zależności jakich danych oczekuje, robie to tak:...   11.02.2012, 19:31:46
- - arkos   Dzięki. Czekam dalej na propozycje i odpowiedzi. ...   11.02.2012, 22:48:09
- - Daimos   Cytat(wNogachSpisz @ 11.02.2012, 19:31...   11.02.2012, 22:55:49
- - wNogachSpisz   Cytat(Daimos @ 11.02.2012, 22:55:49 )...   12.02.2012, 00:34:12
- - wNogachSpisz   Cytat(desavil @ 12.02.2012, 12:38:50 ...   12.02.2012, 12:43:22
- - arkos   Ok, dzięki. Już się nauczyłem jak sprawdzać inita ...   15.02.2012, 16:19:33
- - wNogachSpisz   1. Nie rozumiem pytania. 2. To zależy. 3. Nie rozu...   15.02.2012, 16:21:46
- - arkos   Jak mam powtarzać, jak wszystko jest w pierwszym p...   15.02.2012, 16:23:28
- - wNogachSpisz   Chętnie odpowiem na każde pytanie. Problem w tym ż...   15.02.2012, 16:25:55
- - arkos   W takim razię napiszę je jeszcze raz: 1. Pytanie:...   15.02.2012, 16:41:07
- - wNogachSpisz   1. W tej zmiennej może być wszystko, np. tablica z...   15.02.2012, 16:57:27
- - arkos   Nie rozumiem odpowiedzi na 4 pytanie. Jeżeli on wt...   15.02.2012, 17:13:41
- - wNogachSpisz   Jeśli wstrzyknie w URL, to może taki adres komuś p...   15.02.2012, 17:24:43
- - arkos   Ok, to byłoby na tyle myślę. Dzięki, jak coś mi s...   27.04.2014, 17:57:05
- - com   nie, a w zasadzie tamto było troche wymyślaniem ko...   27.04.2014, 18:14:05
|- - arkos   Cytat(com @ 27.04.2014, 19:14:05 ) ni...   27.04.2014, 18:19:12
- - com   no tak, ale w specyfikacji masz określone, a od mq...   27.04.2014, 18:33:34


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 18:23