Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL]Jakie jest najlepsze zabezpieczenie przed SQL Injection?
-Gość-
post
Post #1





Goście







Czy mysql_real_escape_string() będzie wystarczającym zabezpieczeniem przed SQL Injection?
A jeżeli nie to dlaczego i czy też są jakieś inne lepsze sposoby?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mephistofeles
post
Post #2





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Nie. Używaj PDO kiedy tylko to możliwe, mysql_ to stary wynalazek.
Dlaczego mysql_real_escape_string() nie zabezpiecza w 100%? Bo może trafić się dziura w PHP, co kompletnie omijamy używając podpinania parametrów (baza wie, co jest zapytaniem, a co zmienną).
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







Cytat(Mephistofeles @ 28.07.2012, 23:02:38 ) *
Nie. Używaj PDO kiedy tylko to możliwe, mysql_ to stary wynalazek.
Dlaczego mysql_real_escape_string() nie zabezpiecza w 100%? Bo może trafić się dziura w PHP, co kompletnie omijamy używając podpinania parametrów (baza wie, co jest zapytaniem, a co zmienną).


Masz rację - w PDO byłoby najlepiej, tyle tylko, że ja do tej pory na swojej stronie pisałem wszystko w czystym MySQL i musiałbym wszystkie zapytania przerobić.

A może gdyby zastosować dwie funkcje:
  1. $zmienna = strtolower(mysql_real_escape_string($zmienna);
  2. $zmienna = ereg_replace("[^ 0-9a-zA-Z]", " ", $zmienna);


Wówczas funkcja ereg_replace() usunęłaby wszystkie niepożądane znaki i po sprawie. Czy też tylko tak mi się wydaje i takie rozwiązanie też nie gwarantuje pełnej ochrony przed SQL Injection?


Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 15:16