Question

J'utilise CodeIgniter dans une application. Il y a une forme. Dans l'élément textarea, je l'ai écrit quelque chose, y compris

%Features%

Cependant, quand je veux faire écho par $ this-> entrée-> poste (clé), je reçois quelque chose comme �atures%

Le '% Fe' sont disparu.

Dans le fichier principal index.php de CI, j'ai essayé var_dump($_POST) et je vois le mot ci-dessus est tout à fait correct. mais quand je suis aller chercher avec la bibliothèque d'entrée (filtrage XSS est) je reçois le problème.

Lorsque le filtrage XSS est éteint, il semble ok au départ. Cependant, si je stocker dans la base de données et de montrer la prochaine fois, je vois même problème (même le filtrage XSS est éteint).

Était-ce utile?

La solution

%Fe arrive à ressembler à une séquence encodée URL %FE, caractères représentant 254. Il est en cours de croquait dans l'Unicode « Je ne sais pas ce que cela signifie de séquence » glyphe,.

Il est clair que le « filtre XSS » est trop zélé lors du décodage du champ de la soumission.

Il est également très probable qu'une URL decode est en cours d'exécution à nouveau à un moment plus tard dans le processus, lorsque vous sortie le résultat de la base de données. Vérifiez la base de données pour vous assurer que la chaîne réelle est représentée correctement.

Autres conseils

D'abord: Évasion les variables avant de les stocker dans db. % A une signification particulière dans SQL.

Deuxième:% a aussi une signification particulière dans les URL par exemple. 20% est% FE carte à un certain caractère qui sera décodé par l'entrée ()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top