Bonsoir / Bonjour, je viens vers vous juste pour clarifier deux / trois choses.

Pour éviter des failles de sécurité au niveau de la saisie de formulaire, si je ne me trompe pas, en utilisant PDO pour accéder à la base de donnée, les bindValue permette d'éviter cela.

Par contre j'ai vu qu'il y avait des possibilités de failles apellées XSS, donc pour éviter cela j'utilise la fonction htmlentities.

Déjà dans un premier temps, outre les vérifications isset & empty ainsi que les tailles et autre contrainte, y a t-il d'autre action à appliquer aux variables ?

De plus un problème se pose avec ce htmlentities. En effet cela trascrit les balises HTML et donc fausse la taille.
Je m'explique, lors de l'insertion, si je souhaite que la valeur fasse moins de 25 caractères, il faut que je fasse la vérification avant le htmlentities, sinon cela peut être éronée. De plus cela pose un autre problème pour la base de donnée. Si je donne une taille de 25 caractères en base de donnée, puisque la valeur stockée sera passée par la fonction htmlentities, la variable pourra être supérieur à 25 caractères alors que le saisie est bien inférieur à 25 caractères (la valeur avant le passage de htmlentities).

Exemple :
L'utilisateur tape Gégé,
htmlentities(Gégé) => G& eacute;g& eacute; en bdd donc la taille est faussée.

Je sais pas si vous voyez ce que je veux dire par là ?

Donc pour résumer :
Y a t-il d'autre action de vérification pour la sécurité en plus de ce que fait PDO et la fonction htmlentities ?
Comment gérer ce problème de taille suite au passage de la fonction ?

Merci de vos réponses !

2 réponses


plutot que htmlentities, j'aurai pris un string replace, comme ça tu ne vise que les caractére senssible comme /\:<>'"
Tes accents et autre symbole restes intacts