sql >> Databasteknik >  >> RDS >> Oracle

SQL-injektionsförebyggande med dynamisk SQL ALTER USER-fråga

Du bör inte försöka förhindra SQL-injektion endast på databasnivå. När de väl kom dit har de för det mesta redan fått dig. Du bör använda parametrar, maskera inmatning och ta bort dåliga tecken redan i lagret ovan. Verktyg(Frameworks?) som Entity Framework tar automatiskt bort farliga tecken.

Använder DBMS_ASSERT.ENQUOTE_NAME går väldigt bra här, men jag rekommenderar att du gör det här också i lagren ovan.

Allmän regel (som du följer här):Använd säkerhetsmekanismer som är etablerade och beprövade, uppfinn dem inte på nytt!

Dessutom ett uttalande som

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

är absolut lagligt och inte farligt.

Och hur kallar man funktionen/proceduren i DB? Du är sårbar där också, eller hur?




  1. Hur skickar man XML från C# till en lagrad procedur i SQL Server 2008?

  2. Rangordna gemensamma positioner i MySQL

  3. MySQL 'Uppdatera tidsstämpel'-kolumn - utlösare

  4. PostgreSQL:Loop tills ett tillstånd är sant