Maison > base de données > tutoriel mysql > Comment puis-je définir dynamiquement les noms de tables dans les requêtes SQL dynamiques pour empêcher l'injection SQL ?

Comment puis-je définir dynamiquement les noms de tables dans les requêtes SQL dynamiques pour empêcher l'injection SQL ?

Linda Hamilton
Libérer: 2025-01-11 17:26:42
original
488 Les gens l'ont consulté

How Can I Dynamically Set Table Names in Dynamic SQL Queries to Prevent SQL Injection?

Requête SQL dynamique : définir le nom de la table

Dans les requêtes SQL dynamiques, vous pouvez utiliser certaines méthodes pour fournir dynamiquement des paramètres et définir le nom de la table. Même si vous avez réussi à définir un paramètre, vous avez maintenant besoin de conseils sur la façon de définir le nom de la table de manière dynamique.

Définir dynamiquement le nom de la table

Pour éviter les vulnérabilités d'injection SQL, il est recommandé d'utiliser des fonctions autant que possible. Dans ce cas, vous pouvez combiner plusieurs techniques pour définir le nom de la table de manière dynamique :

<code class="language-sql">SET @TableName = '<[db].><[schema].>tblEmployees'
SET @TableID = OBJECT_ID(@TableName) --如果格式错误/注入,则无法解析。
SET @SQLQuery = 'SELECT * FROM ' + QUOTENAME(OBJECT_NAME(@TableID)) + ' WHERE EmployeeID = @EmpID'</code>
Copier après la connexion

Ce script initialise le nom de la table en tant que paramètre, puis récupère l'ID de l'objet sous-jacent pour garantir que le nom fourni est valide. Si le nom de la table fourni est mal formé ou a été injecté en tant que vulnérabilité SQL, l'ID de l'objet ne sera pas résolu.

Enfin, faites une référence au nom de la table pour éviter d'éventuelles attaques par injection SQL et complétez la requête SQL dynamique en ajoutant le paramètre d'ID d'employé fourni.

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