sql >> Databasteknik >  >> RDS >> Mysql

Är urlencode() tillräckligt bra för att stoppa alla SQL-injektionsattacker år 2011

urlencode() har inget att göra med SQL, så det gör lika mycket för att förhindra SQL-injektion som fotogen gör för att göra dina hamburgare godare. Dessutom kommer allt som kommer in i din databas att hamna URL-kodat, som du sedan måste avkoda om du vill göra något användbart med dem efter att ha hämtat databasen.

Att undkomma dina frågor, å andra sidan, hjälper din applikation att skydda sig mot SQL-injektion, och inget mer. Det ändrar inte data du går in i dina frågor; det skyddar bara dina frågor från att bli manipulerad. Det är idén med SQL-injektion, och det är också därför URL-kodning av dina data inte gör något för att skydda mot det. Visst, det gör det vänd dina apostrofer ' till %27 , vilket gör dem ofarliga, men som nämnts i stycket ovan måste du URL-avkoda dem tillbaka till apostrof för att kunna använda dem.

Använd rätt verktyg för rätt ändamål. Särskilt under år 2011 bör du använda förberedda satser istället för att manuellt undvika dina frågevariabler och sammanfoga strängar för att skapa frågor.



  1. Hur ansluter man mysql workbench till att köra mysql inuti docker?

  2. ELLER Operatörskortslutning i SQL Server

  3. Hur får jag min postgresql-databas att använda en skiftlägesokänslig sortering?

  4. SQL Server variabel kolumner namn?