Comment utiliser en toute sécurité les listes dans les clauses MySQL IN pour empêcher l'injection SQL ?

Barbara Streisand
Libérer: 2024-11-25 20:47:14
original
884 Les gens l'ont consulté

How to Safely Use Lists in MySQL IN Clauses to Prevent SQL Injection?

Imploser en toute sécurité des listes pour les clauses MySQL IN

La sécurité de la base de données est primordiale et éviter l'injection SQL est crucial. Lorsque vous utilisez une liste de valeurs dans une clause MySQL IN, il est essentiel de le faire en toute sécurité.

Problème :

Développer une liste en une chaîne à utiliser dans un La clause IN est sensible à SQL injection.

# Vulnerable
cursor.execute("DELETE FROM foo.bar WHERE baz IN ('%s')" % foostring)
Copier après la connexion

Solution :

Pour vous prémunir contre l'injection SQL, utilisez la liste de valeurs directement comme paramètres :

# Safe
format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
Copier après la connexion

Ceci Cette approche transmet la liste des valeurs en tant que paramètres au lieu de les intégrer dans la chaîne de requête, empêchant ainsi les attaques par injection.

En transmettant directement les données au pilote MySQL. en tant que paramètres, vous éliminez le besoin de citations et d'échappements manuels, garantissant ainsi l'intégrité des opérations 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal