E-mails sécurisés PHP

E-mails sécurisés PHP

Dans le script de messagerie PHP de la section précédente, il existe une vulnérabilité.

Injection d'e-mail PHP

Tout d'abord, veuillez regarder le code PHP du chapitre précédent :

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

"; } ?>

Le code ci-dessus Le problème 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 des éléments supplémentaires Les champs Cc:, Bcc: et To: ont été ajoutés. Lorsque l'utilisateur clique sur le bouton Soumettre, cet e-mail sera envoyé à toutes les adresses ci-dessus !

PHP empêche l'injection d'e-mails

La meilleure façon d'empêcher l'injection d'e-mails est de valider l'entrée.

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:

"; } ?>

Dans le code ci-dessus, nous utilisons Filtre PHP pour valider la saisie :

Le filtre FILTER_SANITIZE_EMAIL supprime les caractères illégaux de l'email de la chaîne

· Le filtre FILTER_VALIDATE_EMAIL valide la valeur de l'adresse email

Vous pouvez lire plus d'informations sur les filtres dans notre filtre PHP.


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!