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

Prevenzione dell'iniezione di SQL con query SQL ALTER USER dinamica

Non dovresti provare a prevenire l'iniezione di SQL solo a livello di database. Una volta arrivati, per lo più ti hanno già preso. Dovresti usare i parametri, mascherare l'input e rimuovere i caratteri non validi già nel livello sopra. Strumenti (framework?) come Entity Framework rimuovono automaticamente i caratteri pericolosi.

Utilizzando DBMS_ASSERT.ENQUOTE_NAME sta andando molto bene qui, ma consiglierei di farlo anche nei livelli sopra.

Regola generale (che segui qui):Utilizza meccanismi di sicurezza consolidati e collaudati, non reinventarli!

Inoltre, una dichiarazione come

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

è assolutamente legale e non pericoloso.

E come si chiama la funzione/procedura nel DB? Anche tu sei vulverabile lì, vero?.