[php] Sécurité fonction mail()

jbof74 Messages postés 123 Statut Membre -  
 le père -
Bonjour à tous,

Une simple question de sécurité en php : est-ce qu'il est utile de rendre inoffensif les caractères html pour l'envoie d'un email par la fonction mail(). Je vous donne la partie du script où je récupère les données inscrite par le visiteur puis où j'envoie le mail.

<?php

/* Je récupère les infos entrés par l'utilisateur */
$objet=htmlspecialchars($_POST['objet']);
$message=htmlspecialchars($_POST['message']);
$prenom=htmlspecialchars($_POST['prenom']);
$nom=htmlspecialchars($_POST['nom']);
$mail=htmlspecialchars($_POST['mail']);

/* création du header de l'email */
$header = 'From: "' . $prenom . ' ' . $nom . '"' . $mail . "\n";
$header .= 'Reply-To: ' . $mail . "\n";
$header .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$header .='Content-Transfer-Encoding: 8bit';

/* envoie l'email en récupérant un code d'erreur pour après afficher si ca a marché .... */
$reussi = mail('fake_fake@yahoo.fr', $objet, stripslashes($message), $header);

?>

A+
JB
A voir également:

6 réponses

jbof74 Messages postés 123 Statut Membre
 
Remonte STP ^^
0
le père
 
Bonjour

Pas besoin de htmlspecialchars. Cette fonction n'a aucun rapport avec les emails ni avec la protection de quoi que ce soit, elle sert juste à transformer certains caractères en entités HTML, par exemple < en & lt;
On la voit souvent employée (y compris sur ce forum) avec un rôle de protection, c'est une erreur, elle ne sert qu'à avoir un affichage HTML correct.
Dans ton cas, comme tu envoies un mail en plain/text et non pas en HTML, tu récupérerais des mails avec des entités HTML à la place des < > et autres &. Fais l'essai, tu verras bien.
0
jbof74 Messages postés 123 Statut Membre
 
Merci pour ta réponse,

En faite le seul problème pour moi c'était si il y avait un ' ou un " dans un des champs, qu'est-ce qui se passait ? Donc là j'ai aucun problème si j'ai bien compris. Si il y a autre chose à faire pour sécuriser ce petit script dis le moi.

A+
JB
0
le père
 
Je vois aussi que tu utilises un stripslashes, sais-tu pourquoi ? Normalement, si tu as magic_quotes_gpc actif, tu en as besoin sur toutes les données POST, (et pas seulement sur le message). S'il est inactif, il n'en faut pas du tout.
En ce qui concerne la sécurité, je ne suis pas spécialiste,mais vérifie le contenu des variables $nom, $prenom et $mail. Par exemple, vérifie qu'elles ne contiennent ni \r ni \n ni ; .Ça évite que quelqu'un injecte un header que tu n'as pas prévu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jbof74 Messages postés 123 Statut Membre
 
Salut,
Désolé pour l'absence, j'étais en vacances et j'y retourne demain !
Bon j'ai regardé ce que tu m'a dit. En faite je suis chez online.net et je n'ai pas accès au fichiers de config du server php donc je ne suis pas sûr que l'option de protection est activée. En faite j'ai juste rajouté des addslashes et c'est tout. Bon, je recoie comme même des mail avec des antislashes mais ca me suffit. Sinon je fais un test des IP pour éviter le spaming en interdisant l'envoie de mail plus d'une fois toutes les 10 minutes. Est-ce asser au niveau sécurité pour ce script. Si oui c'est résolu.

Merci beaucoup
JB
0
le père
 
Si tu as des antislashes en trop, c'est qu'il NE FAUT PAS mettre addslashes.
En ce qui concerne la sécurité elle-même (qui n'a aucun rapport avec addslashes) malheureusement je ne suis pas spécialiste, je ne peux pas t'en dire plus que ce que je t'ai déjà dit.
0