Sécurisation des applications Python contre l'injection SQL
Les attaques par injection SQL constituent une menace importante pour les applications qui gèrent les entrées fournies par l'utilisateur. En Python, lors de la définition des valeurs dans un champ char(80) dans une base de données SQLite, il est crucial de mettre en œuvre une protection contre ces attaques.
Pour sécuriser l'opération UPDATE contre l'injection SQL, il est recommandé d'utiliser des requêtes paramétrées qui permettent vous devez transmettre l'entrée fournie par l'utilisateur en tant que paramètre tout en la séparant de l'instruction SQL. Cela empêche les caractères malveillants d'interférer avec la syntaxe SQL.
La méthode curseur.execute() du module SQLite3 de Python prend en charge les requêtes paramétrées à l'aide du ? espace réservé. Vous pouvez spécifier l'entrée utilisateur sous la forme d'un tuple de valeurs dans l'appelexecute(). Par exemple :
def setLabel(self, userId, refId, label): self._db.cursor().execute( """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", (label, userId, refId) ) self._db.commit()
Dans ce code révisé, l'étiquette fournie par l'utilisateur est transmise comme premier argument à la méthode curseur.execute() en tant que paramètre distinct, empêchant ainsi les entrées malveillantes de manipuler l'instruction SQL.
En utilisant des requêtes paramétrées, vous pouvez protéger efficacement votre application contre les attaques par injection SQL et garantir l'intégrité et la sécurité de votre base de données.
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!