Aller au contenu

Sujets conseillés

Posté

Bonjour, :)

J'ai un formulaire de recommandation et je souhaite le sécuriser un maximum contre les injections.

Je souhaite ajouter un code qui empeche l'ajout d'un email dans le nom, de même que les \n et les \r

Mais je tourne autour du pot...

J'arrive pas :(

	if(empty($_POST['name'])) { 
$errormessages[] = 'Please enter your name.';
$errorfields[] = 'name';
}

J'ai fais des essais de ce style mais ça ne marche pas:

 if(empty($_POST['name'])) { 
$errormessages[] = 'Please enter your name.';
$errorfields[] = 'name';
} else {
if(!eregi("@"or"\n"or"\r", $_POST['name'])) {
$errormessages[] = 'Please enter a proper name.';

Question supplémentaire :

Est-ce nécessaire d'ajouter au fomulaire de recommandation un captcha ?

Merci beaucoup !

Posté

Un petit code pour vérifier si un texte est alphanumérique :

function is_alphanum($par_value)

{

if (preg_match('|^[a-zA-Z0-9_]+$|', $par_value))

{

return true;

}

else

{

return false;

}

}

Et pour éviter les injections, tout dépend ensuite de ce que tu fais de tes données que tu récupères. Si c'est juste pour de l'affichage, encode les avec htmlspecialchars

Posté (modifié)

Bonjour,

Merci pour vos réponses, je vais tester vos codes... :thumbsup:

Cependant, aprés un trés long aprés-midi à chercher la combine,

j'ai enfin trouvé quelqu echose qui semble marcher à tout les coups :

if(empty($_POST['name'])) { 
$errormessages[] = 'Veuillez saisir votre nom.';
$errorfields[] = 'name';
} else {
if(eregi("@", $name)){
$errormessages[] = 'Veuillez saisir uniquement votre nom.';
$errorfields[] = 'name';
}
}

J'ai ajouté tout simplement un if(eregi("@", $name)) qui détecte la présence d'un @ dans le champ nom.

Ainsi l'utilisateur ne peut que rentrer tout ce qu'il sauf un email....

PS: si ja fait ça, c'est pour éviter les injection d'en-têtes...

Voila a+

Modifié par Norbert_404

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...