Tutoriel sur les bases du développement PHP : e-mail sécurisé
1. Injection de courrier électronique PHP
Il existe une vulnérabilité de sécurité dans le script de courrier électronique PHP
Regardez le précédent un code PHP dans le chapitre :
php中文网(php.cn) Email:
Subject:
Message:
"; } ?>
Le problème avec le code ci-dessus est que des utilisateurs non autorisés peuvent insérer des données dans l'en-tête de l'e-mail via le formulaire de saisie.
Que se passera-t-il si l'utilisateur ajoute le texte suivant à l'e-mail dans la zone de saisie du formulaire ?
quelqu'un@exemple.com%0ACc:person2@exemple.com
%0ABcc:person3@exemple.com,person3@exemple.com,
une autre personne4@exemple. com,person5@example.com
%0ABTo:person6@example.com
Comme d'habitude, la fonction mail() place le texte ci-dessus dans l'en-tête de l'e-mail, donc maintenant l'en-tête a été ajouté champs supplémentaires Cc:, Bcc: et To:. Lorsque l'utilisateur clique sur le bouton Soumettre, cet e-mail sera envoyé à toutes les adresses ci-dessus !
2. Injection d'e-mails PHP
La meilleure façon d'empêcher l'injection d'e-mails est de valider l'entrée. (Similaire à la validation de formulaire)
Le code suivant est similaire à celui du chapitre précédent, mais ici nous avons ajouté un validateur d'entrée pour détecter le champ email dans le formulaire :
php中文网(php.cn) Email:
Subject:
Message:
"; } ?>
Résumé : Dans le code ci-dessus, nous avons utilisé des filtres PHP pour valider l'entrée :
Le filtre FILTER_SANITIZE_EMAIL supprime l'e-mail de la chaîne Caractères illégaux
Le filtre FILTER_VALIDATE_EMAIL valide la valeur de l'adresse email
Vous pouvez en savoir plus sur les filtres dans notre PHP Filtre.