Designet af mysql_query
funktionen er sådan, at du skal være forsigtig med at undslippe hver eneste bit af data, du injicerer i den, og hvis du går glip af én, kan hele din applikation blive ødelagt af en automatisk SQL-sårbarhedsudnyttelsesværktøj
.
Begge mysqli
og PDO understøtter pladsholdere, som er påkrævet for at sikre, at dine forespørgsler er sikre mod SQL-injektionsfejl. Kalder mysql_real_escape_string
på alt er ikke kun kedeligt, men fejltilbøjeligt, og det er der, problemerne opstår.
mysql
funktioner er et produkt af de tidlige dage med PHP og er væsentligt mere begrænsede end de nye objektorienterede funktioner, der tilbydes af både mysqli
som en mulighed, eller PDO ved design.
Der er en række meget gode grunde til at bruge en af disse to nye grænseflader, men den vigtigste er, at mysql_query
funktion er simpelthen for farlig til at bruge i produktionskode. Med det vil du altid være en fejl væk fra nogle meget alvorlige problemer.
Der er en grund til, at rips af databaser fyldt med adgangskoder og kreditkortnumre bliver ved med at dukke op. At have et åbenlyst SQL-injektionspunkt gør det næsten for nemt at overtage et websted fuldstændigt.