Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Bezpieczeństwo - formularze
permanent
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 14.02.2009

Ostrzeżenie: (0%)
-----


Mam dosyć głupie pytanie, otóż czy takie coś:

  1.  
  2. if(!empty($_POST['username']) && !empty($_POST['email']) && !empty($_POST['kod']))
  3. {
  4. ...
  5. }
  6.  


Czy to jest w jakiś sposób niebezpieczne dla mojego skryptu? Oczywiście w zapytaniach do bazy robie filtrowanie.

Czy muszę robić coś takiego:
  1. $post1 = addslashes($_POST['username']);
  2.  
  3. if(!empty($post1) ...

?

Niby błahostka ale wole się upewnić dla bezpieczeństwa.

Ten post edytował permanent 22.04.2011, 18:34:48
Go to the top of the page
+Quote Post
pmir13
post
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


Jeśli jakaś zmienna będzie empty to addslashes na niej nic nie zmieni. Empty sprawdza jedynie czy jest tam 0 czy nie dla liczb, pusty string czy inny dla stringów itp.
Go to the top of the page
+Quote Post
permanent
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 14.02.2009

Ostrzeżenie: (0%)
-----


Chodzi o to, że jeżeli ta zmienna NIE JEST pusta to wykonuj coś dalej - !empty
Go to the top of the page
+Quote Post
pmir13
post
Post #4





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


Przecież pytałeś czy empty jest bezpieczne. Dostałeś odpowiedź że empty tylko sprawdza czy w zmiennej coś jest czy nie ma, więc jak może być niebezpieczne?
Po co tłumaczysz oczywisty kod?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #5





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Co ciekawe
  1. string(1) '0'

empty() zwraca TRUE (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
pmir13
post
Post #6





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


Szczerze nie rozumiem tej konstrukcji.
Chyba że chodzi o:
  1. $str='0';
  2. echo empty($str[1]);

Wtedy nie ma w tym nic dziwnego, bo w $str[0] jest '0', natomiast w $str[1] jest NULL (bo to zły offset).
Go to the top of the page
+Quote Post
-krzotr-
post
Post #7





Goście







http://pl2.php.net/empty

Zobacz kiedy zwraca FALSE
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #8





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Dla mnie to jest nieporządane zachowanie.
Ja to widzę jako string o długości 1 bajta.
Skoro '0' to dlaczego nie '00' albo '0.0' albo '-1' albo '-2' ?
No ale cóż, rozumiem że to rezultat polityki "luźnego" traktowania typów danych.

Ten post edytował wNogachSpisz 23.04.2011, 03:05:39
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 01:09