Oracle
 sql >> Base de données >  >> RDS >> Oracle

Prévention de l'injection SQL avec requête dynamique SQL ALTER USER

Vous ne devriez pas essayer d'empêcher l'injection SQL uniquement au niveau de la base de données. Une fois qu'ils sont arrivés là-bas, ils vous ont déjà pour la plupart. Vous devez utiliser des paramètres, masquer l'entrée et supprimer les mauvais caractères déjà dans la couche ci-dessus. Des outils (Frameworks ?) comme Entity Framework suppriment automatiquement les caractères dangereux.

Utilisation de DBMS_ASSERT.ENQUOTE_NAME se débrouille très bien ici, mais je vous recommande de le faire également dans les couches ci-dessus.

Règle générale (que vous suivez ici) :Utilisez des mécanismes de sécurité établis et éprouvés, ne les réinventez pas !

De plus, une déclaration comme

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

est absolument légal et non dangereux.

Et comment appelez-vous la fonction/procédure dans la base de données ? Vous êtes vulnérable là-bas aussi, n'est-ce pas ?.