Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/09/2011, 11h46   #1
Invité de passage
 
Inscription : mai 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 8
Points : 2
Points : 2
Par défaut Sécurisation formulaire mail

Bonjour,

Je suis actuellement en train de mettre en place un formulaire de contact qui envoi un mail grâce à la méthode POST. Je n'ai aucun problèmes dans l'envoi et réception de données, cependant je suis un peu perdu au niveau de la sécurisation.
Tout d'abord, est ce qu'il y a un intérêt à sécuriser un formulaire de contact vu qu'il n'y a aucun accès à une base de données ?
Si oui, je suis un peu perdu avec toutes les méthodes, laquelle utilisée, htmlentities, stripslashes, strip_tags ?
Et pour finir, j'ai un problème dans l'affichage du mail pour tout ce qui est accent ou caractères spéciaux, je pensais que ça se réglait avec un en-tête de ce type :
Code :
1
2
3
4
5
6
7
 
$headers  = "MIME-Version: 1.0\r\n";
$headers .= 'From: "'.$from.'" <'.$email.'>'."\n";
$headers .= 'Reply-To: '.$email."\r\n";
$headers .= 'Content-Type: text/plain; charset="iso-8859-1"';
$headers .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$headers .= 'X-Mailer:PHP/' . phpversion()."\r\n";
Merci d'avance
Plout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 15h16   #2
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149


Je ne peux pas répondre à toutes tes questions, mais concernant la sécurisation, il y a 2 niveaux :
- Sécurisation des variables reçues : un bon htmlspecialchars te débarrassera des balises HTML (que tu ne veux probablement pas voir interprétées du côté du destinataire de l'e-mail) et des attaques XSS ; strip_tags étant à mon avis un peu extrême, et la gestion des slashs inutile dans ce contexte
- Sécurisation du formulaire : elle est très importante pour éviter les envois automatisés créant du flood voire du spam sur la boîte destinataire. Tu dois donc protéger ton formulaire à l'aide, par exemple, d'un CAPTCHA (je te conseille reCaptcha, dont l'intégration est facile, qui gère l'accessibilité, et qui est plutôt efficace).

Pour les problématiques d'encodage, je ne peux que te conseiller d'envoyer ton e-mail en UTF-8 (compatible avec plus de clients mail), en dehors de ça je suis assez peu compétent. Si tu ne veux pas te prendre la tête, utilise une bibliothèque comme phpmailer, qui s'occupe de tout ça
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/09/2011, 16h32   #3
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
si tu ne veux pas trop te prendre la tete pour la securisation de ton formulaire :
- test si les champs sont vides (surtout celui qui contient le corps du message)
- utilise filter_var() (avec FILTER_VALIDATE_EMAIL) si tu ne veux pas te prendre la tete avec des regexp
- si tu ne veux pas ajouter de capcha :
ajoute un hidden
Code html :
<input type="hidden" id="email" name="email" value="" />
(appel le email, contact...'fin, un truc que les bots auraient envie de remplir) et si ce champ est remplis, c'est que c'est un bot, et tu n'envois pas le mail.

=> on dira que ce sont des astuces rapides et facile a mettre en place, ce ne sont pas les meilleures. (rien ne vaut quelques bonnes lignes de codes)
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/09/2011, 17h45   #4
Membre Expert
 
Avatar de kdmbella
 
Homme Demazy Mbella
Développeur Web
Inscription : août 2010
Messages : 620
Détails du profil
Informations personnelles :
Nom : Homme Demazy Mbella
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2010
Messages : 620
Points : 1 470
Points : 1 470
en complément de ce que les autre ont dit, je te conseille d'utiliser un charset avec UTF-8 ça t'évitera tous les problèmes liés aux accents et autres
aussi il faut verifier le format de l'adrese email par une expression régulière il y a un exemple dans les forum de developpez.com le lien est le suivant :
http://www.developpez.net/forums/d963010/webmasters-developpement-web/javascript/expression-reguliere-validation-email/

a++
__________________
Trois personnes peuvent garder un secret si deux d'entre elles sont mortes. :Benjamin Franklin
L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent : Benjamin Franklin
Le hasard, c'est le déguisement que prend Dieu pour voyager incognito: Albert Einstein
bon je m'arrête là au risque de me faire buter
kdmbella est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/09/2011, 10h15   #5
Invité de passage
 
Inscription : mai 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 8
Points : 2
Points : 2
Merci pour toutes vos réponses, j'ai donc opté pour htmlspecialchars() et utf-8, tout est ok sauf les apostrophes qui sont précédés d'un antislash et les guillemets mais c'est normal.
Sinon j'avais déja fait le test sur l'adresse mail et pour voir si les champs sont bien remplis, mais pas le input hidden
Plout est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h54.


 
 
 
 
Partenaires

Hébergement Web