sql >> Database teknologi >  >> RDS >> Sqlserver

Forhindre SQL-injektion i ORDER BY-klausulen

Hvis du har at handle i strenge, så er white-listing dit bedste bud. For det første sortDirection burde være ret trivielt at hvidliste:en forskel mellem store og små bogstaver sammenlignet med "asc" / "desc" og du burde være indstillet. For de andre ville min præference være at hvidliste til kendte kolonner , måske ved at indtaste den forventede Type for data og validering. Men i et absolut knibe, kan du begrænse med regex for at (sige) håndhæve de alle er strengt alfanumerisk (i intervallet a-z, A-Z, 0-9 - måske understregning, hvis det er nødvendigt) - og tilføj derefter [] , dvs.

return string.Format("[{0}] {1}", sortColumn, sortDirection);

Men:en streng hvidliste over kendte kolonner ville være meget bedre, ligesom en opregning for retningen.



  1. MySQLi - erklærer variabel efter bind_param?

  2. Django-migreringsfejl:Kolonnen eksisterer ikke

  3. Python:ikke-understøttet formattegn ''' (0x27) ved indeks 350

  4. mysql-python installationsproblemer (på mac os x lion)