sql >> Database teknologi >  >> RDS >> Oracle

SQL-injektionsforebyggelse med dynamisk SQL ALTER USER-forespørgsel

Du bør ikke forsøge kun at forhindre SQL-injektion på databaseniveau. Når de først kom dertil, har de for det meste allerede fået dig. Du bør bruge parametre, maske input og fjerne dårlige tegn allerede i laget ovenfor. Værktøjer (Frameworks?) som Entity Framework fjerner automatisk farlige tegn.

Bruger DBMS_ASSERT.ENQUOTE_NAME klarer sig meget godt her, men jeg vil anbefale at gøre dette også i lagene ovenfor.

Generel regel (som du følger her):Brug sikkerhedsmekanismer, der er etableret og bevist, lad være med at genopfinde dem!

Desuden en udtalelse som

select * from users where username = 'IAm"WayUp';

er absolut lovligt og ikke farligt.

Og hvordan kalder man funktionen/proceduren i DB'en? Du er også sårbar der, er du ikke?




  1. Oprettelse af et indeks på et tidsstempel for at optimere forespørgslen

  2. Kald Java-funktionen fra Oracle-funktionen

  3. Hvordan konverterer man tid til iPhone-enhedens tidszone?

  4. Brug af Count til at finde antallet af forekomster