Comment puis-je prévenir l'injection SQL, PYTHON-DJANGO?

Si un lamer entrée est insérée dans une requête SQL directement, l'application devient vulnérable à l'injection SQL, comme dans l'exemple suivant:

dinossauro = request.GET['username']

sql = "SELECT * FROM user_contacts WHERE username = '%s';" % username

À déposer les tables ou quoi que ce soit -- la requête:

INSERT INTO table (column) VALUES('`**`value'); DROP TABLE table;--`**`')

Que peut-on faire pour éviter cela?

Puis-je vous demander pourquoi vous manuellement l'écriture de requêtes sql au lieu d'utiliser django Modèles?
L'ORM de django, en dehors de raw et extra échappera à vos questions pour vous. Voir le sécurité docs.

OriginalL'auteur Jayron Soares | 2013-12-09