Powiel możliwe:
Best way to prevent SQL injection in PHP?SQL Injection Protection - pojedyncze cytaty
Ive robi trochę badań, aby chronić swoje witryny z SQL Injection. Rozumiem, że jest kilka sposobów na zrobienie tego, Uwalnianie moich danych wejściowych użytkownika, dodawanie ukośników lub jeszcze lepsze używanie sparametryzowanych instrukcji sql.
miałem ten kod testowy ..
$q=$_GET["q"];
$game = mysql_query("SELECT * FROM `Games` WHERE `id` = '$q'");
$game = mysql_fetch_array($game);
echo "<h4>ID: ".$game[0]."<br /></h4>name: " . $game[1];
Próbowałem kilka SQLi żądań i nie mógł dostać moją stronę testową do błędu, lub wykazują żadnych dodatkowych danych.
Ale kiedy zmieniłem kod SQL do tego (Usunięto apostrofów około $ q) ..
$game = mysql_query("SELECT * FROM `Games` WHERE `id` = $q");
mogę wykonywać proste SQLi i uzyskać pewne rezultaty.
Czy wystarczy tylko dobrze zawrzeć moje dane wejściowe użytkownika w pojedynczym cudzysłowie? Czy może obejrzałam bardziej skomplikowane techniki SQLi?
Użyj PDO z przygotowanym wyciągiem. To bezpieczniejsza opcja od teraz w roku 2012. – itachi
Sprawdź, czy twój serwer php ma 'magic_quotes_gpc = ON', który pomoże zapobiec iniekcji SQL – jcho360
Używaj przygotowanych instrukcji (mysqli lub POD). Oszczędza wiele kłopotów, a mysql jest przestarzałe. –