Bonjour,
j'ai vu qu'il existait une faille de sécurité en utilisant le filtre
filter_var('[email protected]', FILTER_VALIDATE_EMAIL)
Je suis en PHP Version 5.2.9 : cette faille est corrigée ??
Merci de vos réponses
Alain
SourceIl semblerait que des bugs aient été relevés par la communauté au niveau du code source de PHP en version 5.2.5. En effet, la regexp qui se charge de valider les adresses e-mails n'est pas complètement juste. D'autre part, cette fonction ne valide pas lesTLDs, c'est à dire que si ton adresse est [email protected] alors elle sera validée bien que .xxx ne soit pas un TLD valide. Il n'existe donc pas de véritable solution pour valider pleinement une adresse e-mail. Mais au final, filter_var() reste une méthode plus sûre qu'une regexp écrite à la main et plus approximative.
J'ai répondu sans voir ta réponse ... mais je ne comprend pas comment on pourrait injecter du code en utilisant la fonction if(filter_var($e_mail, FILTER_VALIDATE_EMAIL) !== false)... ?Slt , il y a effectivement plusieurs bug remontés au niveau de filter_var , pour la faille de sécurité , il s'agissait di fait que l'on pouvait injecter du code dans les entetes d'un mail , car filter_var ( pour les emails ) ne voyait pas le retour à la ligne \n.
Ah ben oui mais faut pas pousser non plusAu moment ou la faille était là ,
imaginons , une adresse mail du type : mail + injection
Si la vérification de l'adresse mail ne parvient pas à détecter l'injection , le mail finale sera construit avec l'injection .
Donc , le danger se trouve dans le fait que si l'adresse mail est vérifier uniquement pas filter_var( ... ) , et rien d'autre , il est alors possible d'utiliser l'envoi de mail pour envoyer du spam , à partir du moment ou l'on peut injecter du code dans les entêtes des mails , on peut en faire un peu ce que l'on en veux ..
Le risque est donc principalement de devenir spammeur à son insu ...