K útokům SQL injection dochází při vstupu uživatele je nesprávně zakódováno. Vstupem uživatele jsou obvykle data, která uživatel odešle se svým dotazem, tj. hodnoty v $_GET , $_POST , $_COOKIE , $_REQUEST nebo $_SERVER pole. Uživatelské vstupy však mohou pocházet také z různých dalších zdrojů, jako jsou zásuvky, vzdálené webové stránky, soubory atd.. Proto byste měli skutečně zacházet se vším kromě konstant (jako 'foobar' ) jako uživatelský vstup .
V kódu, který jste zveřejnili, je mysql_real_escape_string
se používá ke kódování (=escape) uživatelských vstupů. Kód je tedy správný, tj. neumožňuje žádné útoky SQL injection.
Pamatujte, že je velmi snadné zapomenout na volání mysql_real_escape_string - a jednou stačí pro zkušeného útočníka! Proto možná budete chtít použít moderní CHOP
s připravenými prohlášeními
místo adodb.