Maison >base de données >tutoriel mysql >Comment puis-je sécuriser mon instruction Python UPDATE contre l'injection SQL ?
Assurer la sécurité des interactions avec les bases de données est crucial pour prévenir les attaques par injection SQL. Lorsque vous acceptez des entrées utilisateur susceptibles d'être manipulées, il est impératif de mettre en œuvre des mesures de protection côté serveur. Cet article répond à la nécessité de sécuriser une opération UPDATE en Python contre l'injection SQL.
Dans le scénario donné, la méthode setLabel prend les entrées fournies par l'utilisateur et exécute une requête SQL UPDATE sans protection appropriée. Pour atténuer cela, la chaîne d'entrée doit être échappée avant de pouvoir être transmise en toute sécurité au curseur de la base de données.
La bibliothèque sqlite3 de Python fournit des mécanismes intégrés pour empêcher l'injection SQL. Remplacez les variables d'espace réservé par des valeurs correctement citées :
def setLabel( self, userId, refId, label ): self._db.cursor().execute( """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", ( sqlite3.escape(label), userId, refId ) ) self._db.commit()
En utilisant la fonction sqlite3.escape, l'étiquette fournie sera correctement échappée, empêchant ainsi tout caractère malveillant ou tentative d'injection.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!