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.


Formation continue
||
php中文网(php.cn)
Email:
Subject:
Message:

"; } ?>
soumettre Réinitialiser le code
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!