Låt oss säga att du har en sökfunktion och du hanterar den såhär:
PHP-kod:
mysql_query("SELECT * FROM search WHERE text='" . $_GET['search'] . "'") or die(mysql_error());
Om en person skriver in:
Kod:
'; DROP TABLE search;
när de använder din sökfunktion kommer alltså din MySQL query att bli följande:
Kod:
SELECT * FROM search WHERE text=''; DROP TABLE search; '
Vilket är två stycken MySQL queries, den första queryen som hämtar all info från tabellen search, och den andra queryn raderar hela din tabell.
Om du använder
PHP-kod:
mysql_real_escape_string()
så kommer frågan att se hur såhära:
Kod:
SELECT * FROM search WHERE text='\'; DROP TABLE search; '
Vilket betyder att MySQL endast kommer att se det som en fråga eftersom ' är "utkommenterat".
(Ber om ursäkt för min försvenskning av de engelska orden).