ADELIA |
SADELIA |
WADELIA |
EADELIA |
(I/B) |
(B) |
(I/B) |
(B) |
Description
Permet d'assainir le texte d'un paramètre de type "chaîne" utilisé pour construire une requête SQL, dans le but de prévenir l'injection SQL.
La fonction remplace les caractères non imprimables par des espaces, et double les délimiteurs de fin de chaîne ('). Dans l'implémentation actuelle, elle double également le caractère d'échappement (\) si le paramètre SGBD a pour valeur 'MYSQL'.
Syntaxe
Résultat = &ASSAINIR_SQL(Chaîne)
ou Résultat = &ASSAINIR_SQL(Chaîne;SGBD)
Paramètres
Définition |
Contenu |
Contrôles |
|
Résultat |
Variable de type alphanumérique. |
Chaîne de caractère correctement échappée pour éviter l'injection SQL. |
|
Chaîne |
Variable de type alphanumérique. |
Chaîne de caractères pour laquelle la fonction est exécutée. |
Paramètre obligatoire. |
SGBD |
Constante ou variable de type alphanumérique. |
Nom du SGBD pour lequel l'échappement est réalisé, les valeurs acceptées sont les valeurs rendues par le mot réservé *SGBD. |
Paramètre facultatif. |
Remarques : si la longueur de la zone résultat est insuffisante, le résultat obtenu est tronqué, et potentiellement invalide.
Par exemple
* La valeur réelle est Ma banque
NOM_CLIENT = 'Ma banque'
REQUETE = 'SELECT CCOD_CLI FROM CLIENTS WHERE CNOM_CLI=''' /// &ASSAINIR_SQL(NOM_CLIENT) /// ''''
*
* Le caractère ' est doublé dans le texte de la requête qui devient
* SELECT CCOD_CLI FROM CLIENTS WHERE CNOM_CLI='Ma banque'