sql >> Database >  >> RDS >> Oracle

Preventie van SQL-injectie met dynamische SQL ALTER USER-query

Probeer SQL-injectie niet alleen op databaseniveau te voorkomen. Als ze daar eenmaal zijn, hebben ze je meestal al. U moet parameters gebruiken, invoer maskeren en slechte tekens verwijderen die zich al in de bovenstaande laag bevinden. Tools (Frameworks?) zoals Entity Framework verwijderen automatisch gevaarlijke tekens.

DBMS_ASSERT.ENQUOTE_NAME gebruiken doet het hier heel goed, maar ik raad aan om dit ook te doen in de bovenstaande lagen.

Algemene regel (die u hier volgt):Gebruik gevestigde en bewezen beveiligingsmechanismen, vind ze niet opnieuw uit!

Bovendien kan een uitspraak als

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

is absoluut legaal en niet gevaarlijk.

En hoe noem je de functie/procedure in de DB? Je bent daar ook kwetsbaar, nietwaar?




  1. Gegevens uit de SQL-tabel invoegen en transformeren

  2. Wat is de juiste manier om artikelopmerkingen, hits en vind-ik-leuks te tellen in een artikelindex?

  3. Nog een reden om sp_updatestats te vermijden

  4. SCHEMA() Functie in MySQL