74 votes

Meilleure pratique Python et plus sécurisée pour se connecter à MySQL et exécuter des requêtes

Quel est le moyen le plus sûr d'exécuter des requêtes sur mysql, je suis conscient des dangers liés à MySQL et à l'injection SQL.

Cependant, je ne sais pas comment je dois exécuter mes requêtes pour empêcher l'injection sur les variables que d'autres utilisateurs (clients Web) peuvent manipuler. J'avais l'habitude d'écrire ma propre fonction d'échappement, mais apparemment ce n'est "pas fait".

Que dois-je utiliser et comment dois-je l'utiliser pour interroger et faire des insertions en toute sécurité sur une base de données MySQL via python sans risquer l'injection mysql?

-5voto

Wayne Workman Points 81

Si vous utilisez mysqldb, vous pouvez utiliser la fonction intégrée escape_string. Comme ça.

 sql = "SELECT spam FROM eggs WHERE lumberjack = '" + MySQLdb.escape_string(str(lumberjack)) + "';"
cursor.execute(sql)

Je préfère toujours utiliser la fonctionnalité d'échappement du connecteur de base de données - cela fonctionne comme prévu et le codage manuel des fonctions d'échappement vous-même est un risque pour la sécurité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X