Recupere la chaine avant passage en fonction anti injection.
2 réponses
Franklin
Bonjour à tous.
Récuperant une chaine de caractere dans un $_Post, je lui applique une
fonction anti injection.
Cette fonction fait un stripslash suivi d'un ereg_replace(' +', ' ',
trim($string)) et suivi d'un preg_replace("/[<>]/", '_', $string).
Que pensez vous de cette fonction ?
Mais j'ai un script où je dois ressortir cette chaine de la base pour
l'aficher à l'écran, et là j'ai parfois des caracteres parasites du au
passage de la chaine dans ces fonctions avant la mise en base.
Savez vous comment remettre la chaine telle qu'elle était avant application
de la fonction antiinjection pour pouvoir l'afficher telle qu'elle a été
saisie par l"utilisateur ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Récuperant une chaine de caractere dans un $_Post, je lui applique une fonction anti injection.
Cette fonction fait un stripslash suivi d'un ereg_replace(' +', ' ', trim($string)) et suivi d'un preg_replace("/[<>]/", '_', $string).
Que pensez vous de cette fonction ?
J'en pense qu'elle n'est pas inversible.
Mais j'ai un script où je dois ressortir cette chaine de la base pour l'aficher à l'écran, et là j'ai parfois des caracteres parasites du au passage de la chaine dans ces fonctions avant la mise en base.
Quels caractères ? Des blancs soulignés « _ » ? Oui, c'est normal, et tu ne peux pas savoir quel était le caractère d'origine parmi les trois suivants : « < », « > » et « _ ».
Savez vous comment remettre la chaine telle qu'elle était avant application de la fonction antiinjection pour pouvoir l'afficher telle qu'elle a été saisie par l"utilisateur ?
C'est impossible en l'état.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
Récuperant une chaine de caractere dans un $_Post, je lui applique une
fonction anti injection.
Cette fonction fait un stripslash suivi d'un ereg_replace(' +', ' ',
trim($string)) et suivi d'un preg_replace("/[<>]/", '_', $string).
Que pensez vous de cette fonction ?
J'en pense qu'elle n'est pas inversible.
Mais j'ai un script où je dois ressortir cette chaine de la base pour
l'aficher à l'écran, et là j'ai parfois des caracteres parasites du au
passage de la chaine dans ces fonctions avant la mise en base.
Quels caractères ? Des blancs soulignés « _ » ? Oui, c'est normal, et tu
ne peux pas savoir quel était le caractère d'origine parmi les trois
suivants : « < », « > » et « _ ».
Savez vous comment remettre la chaine telle qu'elle était avant application
de la fonction antiinjection pour pouvoir l'afficher telle qu'elle a été
saisie par l"utilisateur ?
C'est impossible en l'état.
--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.
Récuperant une chaine de caractere dans un $_Post, je lui applique une fonction anti injection.
Cette fonction fait un stripslash suivi d'un ereg_replace(' +', ' ', trim($string)) et suivi d'un preg_replace("/[<>]/", '_', $string).
Que pensez vous de cette fonction ?
J'en pense qu'elle n'est pas inversible.
Mais j'ai un script où je dois ressortir cette chaine de la base pour l'aficher à l'écran, et là j'ai parfois des caracteres parasites du au passage de la chaine dans ces fonctions avant la mise en base.
Quels caractères ? Des blancs soulignés « _ » ? Oui, c'est normal, et tu ne peux pas savoir quel était le caractère d'origine parmi les trois suivants : « < », « > » et « _ ».
Savez vous comment remettre la chaine telle qu'elle était avant application de la fonction antiinjection pour pouvoir l'afficher telle qu'elle a été saisie par l"utilisateur ?
C'est impossible en l'état.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
P'tit Marcel
Franklin wrote:
Récuperant une chaine de caractere dans un $_Post, je lui applique une fonction anti injection.
Cette fonction fait un stripslash suivi d'un ereg_replace(' +', ' ', trim($string)) et suivi d'un preg_replace("/[<>]/", '_', $string).
Savez vous comment remettre la chaine telle qu'elle était avant application de la fonction antiinjection pour pouvoir l'afficher telle qu'elle a été saisie par l"utilisateur ?
utilise une fonction inversible, par exemple en remplaçant un caractère supposé interdit par % suivi de son code ascii hexadécimal, et en remplaçant % par %25.
l'affichage se fera par l'inverse de la fonction, soit un truc du genre (sans garantie) :
Récuperant une chaine de caractere dans un $_Post, je lui applique une
fonction anti injection.
Cette fonction fait un stripslash suivi d'un ereg_replace(' +', ' ',
trim($string)) et suivi d'un preg_replace("/[<>]/", '_', $string).
Savez vous comment remettre la chaine telle qu'elle était avant application
de la fonction antiinjection pour pouvoir l'afficher telle qu'elle a été
saisie par l"utilisateur ?
utilise une fonction inversible, par exemple en remplaçant un caractère
supposé interdit par % suivi de son code ascii hexadécimal, et en
remplaçant % par %25.
l'affichage se fera par l'inverse de la fonction, soit un truc du genre
(sans garantie) :
Récuperant une chaine de caractere dans un $_Post, je lui applique une fonction anti injection.
Cette fonction fait un stripslash suivi d'un ereg_replace(' +', ' ', trim($string)) et suivi d'un preg_replace("/[<>]/", '_', $string).
Savez vous comment remettre la chaine telle qu'elle était avant application de la fonction antiinjection pour pouvoir l'afficher telle qu'elle a été saisie par l"utilisateur ?
utilise une fonction inversible, par exemple en remplaçant un caractère supposé interdit par % suivi de son code ascii hexadécimal, et en remplaçant % par %25.
l'affichage se fera par l'inverse de la fonction, soit un truc du genre (sans garantie) :