Maison >développement back-end >tutoriel php >Comment utiliser en toute sécurité des requêtes paramétrées PDO avec des instructions LIKE ?

Comment utiliser en toute sécurité des requêtes paramétrées PDO avec des instructions LIKE ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-20 18:51:14853parcourir

How to Securely Use PDO Parameterized Queries with LIKE Statements?

Utilisation d'une requête paramétrée PDO avec l'instruction LIKE

Lorsque vous travaillez avec des bases de données, il est primordial d'effectuer des opérations de recherche de manière efficace et sécurisée. Une approche pour améliorer la précision de la recherche et prévenir les vulnérabilités d’injection SQL consiste à utiliser des requêtes paramétrées. Cet article aborde le scénario spécifique de construction d'une instruction LIKE à l'aide de requêtes paramétrées PDO.

Contexte

Vous pouvez rencontrer une situation dans laquelle vous devez interroger des données à l'aide d'une instruction LIKE, qui vous permet de rechercher pour les correspondances partielles basées sur un modèle spécifié. Lors de la création de telles requêtes, il est crucial d'utiliser des requêtes paramétrées pour vous protéger contre les attaques par injection SQL.

Tentative initiale

Vous avez tenté de construire une requête LIKE paramétrée comme suit :

$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"');
$query->execute(array('value'));

Cependant, cette tentative ne produirait pas les résultats attendus car le modèle fourni dans la requête est entouré de guillemets doubles ("). PDO a interprété les guillemets doubles comme faisant partie du modèle, conduisant à un comportement de correspondance incorrect.

Solution optimisée

L'approche correcte implique de paramétrer l'instruction LIKE sans mettre le modèle entre guillemets, comme démontré ci-dessous :

$query = $database->prepare('SELECT * FROM table WHERE column LIKE ?');
$query->execute(array('value%'));

En omettant les guillemets doubles, l'espace réservé (?) est considéré comme une variable et la valeur fournie (« valeur % ») est correctement ajoutée comme modèle de correspondance. comportement de recherche LIKE précis et maintient la sécurité en empêchant les entrées malveillantes d'affecter l'exécution des requêtes.

Conclusion

La construction de requêtes LIKE paramétrées dans PDO est un aspect crucial de la manipulation de bases de données pour une récupération de données efficace et sécurisée. Cet article vous a présenté à la fois une première tentative et une solution optimisée, soulignant l'importance d'un paramétrage approprié lorsque vous travaillez avec des instructions LIKE en PHP.

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!

Déclaration:
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