Je suis en train de faire du stage pour une ONG en Inde (Seva Mandir, http://sevamandir.org) et j'essaie de réparer leur boîte «abonnez-vous à la newsletter». Parce que le personnel n'est pas très sophistiqué et que notre hébergeur n'est pas génial, j'ai décidé d'envoyer les données pertinentes à la personne des publications via mail() au lieu de les stocker dans une base de données MySQL. Je sais qu'il est préférable de traiter les entrées des utilisateurs comme malveillantes, et j'ai recherché sur les forums SO des messages concernant l'échappement de données utilisateur pour l'envoi d'un message électronique. Je sais que les données devraient être échappées; De quoi devrais-je m'inquiéter et quelle est la meilleure façon d'assainir l'entrée avant de l'envoyer par courriel?Désinfecter les commentaires des utilisateurs qui seront postés par la suite - de quoi devrais-je m'inquiéter?
Notez également que l'hôte Web de l'organisation utilise toujours PHP 4, donc je ne peux pas simplement utiliser filter_var pour les chaînes. Je suis working with them to fix the problem, mais pour l'instant je devrais utiliser regexes ou strip_tags ou une autre méthode.
Flux d'un formulaire: 1.
L'utilisateur entre e-mail sur la page d'accueil et clique sur Envoyer
2. L'utilisateur entre le nom, l'adresse, plus d'informations sur deuxième page (mauvaise ergonomie, je sais, mais mon patron m'a demandé de) et clique "Soumettre"
3. Collectez les données via $ _POST et envoyez-les par e-mail à l'éditeur de publications (et éventuellement envoyez une confirmation à l'abonné).
Je vais désinfectez l'e-mail à l'étape 2 et les autres données à l'étape 3. Je vous remercie de votre aide,
Kevin
J'ai utilisé ce code (à partir du lien, pour tous ceux qui visitent cette question à l'avenir): function safe ($ name) { return (str_ireplace (array ("\ r", "\ n", "% 0a ","% 0d "," Content-Type: "," bcc: "," à: "," cc: ")," ", $ name)); } –