Filtrer les caractères non imprimables des champs textes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Filtrer les caractères non imprimables des champs textes

par savageman » 20 nov. 2008, 19:24

Pas facile facile... :/

par Hywan » 20 nov. 2008, 13:39

Sinon, une solution consiste à avoir un filtre variant en fonction de la localisation de l'utilisateur.

par savageman » 20 nov. 2008, 07:48

Une première solution serait de filtrer les caractères < 32 (sauf les retours à la ligne dans un textarea).
Après, pour les caractères invisibles, c'est vrai que c'est un peu trop variant...

par Sékiltoyai » 18 nov. 2008, 21:29

Sékil' a mis un nom sur le problème, peut-être qu'une petite recherche … ?
Non, j'y crois pas. L'engeneering social c'est ultra vaste comme concept… Le fait de prendre l'identité d'une personne est un de ses aspects.

par Hywan » 18 nov. 2008, 19:36

J'y ai encore réfléchis aujourd'hui et je ne trouve pas de solutions car c'est très dépendant des configurations de chaque terminal. Si quelqu'un a une idée …

Sékil' a mis un nom sur le problème, peut-être qu'une petite recherche … ?

par savageman » 18 nov. 2008, 18:45

Sauf que personne n'est protégé... Ou presque personne...
Le truc, c'est que mon filtrage est très restrictif : les accents déjà, c'est mort. :/

par Sékiltoyai » 18 nov. 2008, 18:31

Ce que tu décris, c'est une forme d'engeneering social, et c'est une attaque très efficace contre des gens non avertis…

par savageman » 18 nov. 2008, 08:47

Des failles, des failles... C'est un grand mot. J'ai dit plus haut que c'était pour éviter les petits malins. Par exemple, je peux facilement m'inscrire avec le même pseudo que toi. Si je change l'avatar pour prendre aussi le même, des gens pourront penser que c'est toi qui poste (alors qu'en fait non). Bon sur PHPFrance c'est pas forcément vrai pour toi car t'as un espèce de gros logo VIPHP en-dessous, mais la plupart du temps c'est bon.
C'est pour éviter des petits malins quoi. ;)

par Hywan » 18 nov. 2008, 02:38

Je suis peut-être naïf, mais en quoi ça ouvre des failles de sécurité ?

par savageman » 17 nov. 2008, 21:32

Pour l'instant, j'ai ça : return preg_replace('`[^ \x20-\x7f\w]`i', '', $value);

En gros, je vire tout, sauf les caractères "espace", entre code ascii 32 et 127 et \w sert pour les accents suivant la configuration locale... Après c'est pas vraiment fait pour les caractères chinois non plus, c'est vrai. :s

par Hywan » 17 nov. 2008, 19:04

Hey :),

Et quels sont les caractères non imprimables ? La plage de caractères est immense … Exemple : il suffit que tu n'aies pas installé les polices asiatiques pour Unicode, et tu ne verras pas les caractères (parfois). De plus, tu comprends vite que c'est très dépendant des configurations de la machine de l'utilisateur.

par savageman » 17 nov. 2008, 15:06

Mes charsets sont bien gérés à priori. C'est plus pour éviter par exemple que quelqu'un ai le même pseudo "affiché" s'il mets des caractères invisibles dedans.
De plus, il n'y a aucun intérêt de mettre des caractères non affichables dans ce type de champ...

par Calimero » 17 nov. 2008, 13:37

Ca peut te réserver des surprises si tu n'as pas une gestion parfaite des charsets...

Filtrer les caractères non imprimables des champs textes

par savageman » 17 nov. 2008, 13:34

Bonjour,

J'ai une jolie classe Form (style Hoa ou Zend), et je pensais filtrer systématiquement tous les caractères non imprimables des champs textes (non password) et textarea.

Pensez-vous que ça soit une bonne idée ? Sachant que si le caractère est non imprimable, il ne s'affichera de toute façons pas... C'est dans un souci de sécurité, bien entendu.

Merci d'avance pour vos avis.

@+
Savageman.