sql >> Database teknologi >  >> RDS >> Mysql

PHP SQL-injektionsforebyggelse med strengoperationer

Selvfølgelig kan du beskytte mod injektion med mysql_real_escape_string($postID) , så længe du ikke har noget imod en forespørgsel, hver gang du kalder funktionen.

PDO og MySQLi giver meget mere end blot injektionsbeskyttelse. De giver mulighed for forberedte erklæringer, der kan beskytte mod injektion uden flere opkald til db. Dette betyder hurtigere generel ydeevne. Forestil dig at prøve at indsætte en brugerpost med 30 kolonner i en tabel... det er en masse mysql_real_escape_string() opkald.

Forberedte erklæringer sender alle data på én gang sammen med forespørgslen og undslipper den på serveren i én anmodning. Mysql DB's understøttede erklæringer, de gamle php mysql_ biblioteker understøtter dem ikke.

Tid til at gå videre til mysqli eller helst PDO – du vil aldrig se tilbage.



  1. Konvertering af dato/tidsstreng til unix-tidsstempel i MySQL

  2. Stiller MySQL forespørgsler i kø?

  3. Åben ild hjælp. Brugerdefineret database (tabeller, felter)

  4. Hvordan sletter man en enum type værdi i postgres?