moonwar Posté 15 Avril 2010 Posté 15 Avril 2010 (modifié) Bonjour, C'est un formulaire que j'ai trouvé sur le forum, j'ai ajouté des champs, j'ai testé le tout et ca marche tres bien. Sauf que le message qui arrive sur ma boite n'est pas vraiment beau à voir... je n'arrive pas a organiser le message. Quelqu'un peut m'aider à bien ecrire cette partie de code? if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["nom"]."\n\n"."Telephone :".$_POST["telephone"]."\n\n"."Telephone de bureau :".$_POST["telephone_bureau"]."\n\n"."Entreprise :".$_POST["entreprise"]."\n\n"."Url :".$_POST["url"]."\n\n"."Message :".$_POST["message"],$entete)) Merci d'avance Modifié 15 Avril 2010 par moonwar
Remi Posté 15 Avril 2010 Posté 15 Avril 2010 La solution est dans le message d'erreur : "unexpected if" veut dire "If inattendu..." Donc l'erreur est sur la ligne précédente, la plupart du temps un point-virgule qui manque à la fin de la ligne précédente. Je suppose que le titre du fil de discussion sur le forum en question était "Comment laisser la porte grande ouverte pour se faire pirater son serveur"... car il ne faut jamais réinjecter dans une fonction mail des champs qui viennent par Post sans faire des vérifications dessus. Donc mon conseil serait de chercher un script un peu plus sérieux.
moonwar Posté 15 Avril 2010 Auteur Posté 15 Avril 2010 Merci pour ta réponse, j'avais oublié un ; Le script date de 2007, un peu vieux mais mis-à-jour. je l'ai trouvé ici sur le forum Voir le lien Pkoi, tu as vu une faille? Merci pour tes orientations.
Remi Posté 15 Avril 2010 Posté 15 Avril 2010 Comme je le disais : Il ne faut jamais réinjecter dans une fonction mail des champs qui viennent par Post sans faire des vérifications dessus. Ce genre de script, c'est le délice du sp*m*eur...
Remi Posté 16 Avril 2010 Posté 16 Avril 2010 Il y a pas mal de pages sur le sujet :/>http://www.google.fr/#q=injection+mail
moonwar Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 Merci pour ton explication -meme si je sais chercher sur Google-... Je viens de faire un test, le script ignore les balises Html. Si tu trouves qu'il y a une faille, tu me l'indique sinon merci de ne pas parler pour parler... Merci quand meme.
moonwar Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 Bonjour, d'après Remi Voir le post, le formulaire présenté sur le forum webmaster-hub Voir le post présente une faille car -je cite- "il réinjecte dans une fonction mail des champs qui viennent par Post" Ma quéstion: Est-ce vrai que ce formulaire présente une faille? (Si oui, quelle est la solution?) Merci
Patrick Posté 16 Avril 2010 Posté 16 Avril 2010 Si tu trouves qu'il y a une faille, tu me l'indique sinon merci de ne pas parler pour parler... Il y a effectivement une très grande faille de sécurité dans ton script comme l'a signalé très justement Rémi. Il me semble que tu n'es pas très correct dans ta remarque, Rémi t'aide et tu n'apprécies pas ? C'est un petit peu exagéré non ? Et comme tu le dis si bien : ... je sais chercher sur Google- Tu devrais donc facilement trouver la solution par toi même. Patrick
moonwar Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 Je m'excuse, je me suis mal exprimé... je voulais dire "Etre plus precis..." mais bon, je m'excuse Remi et merci pour ton aide qui a quand meme fait fonctionner le script.
Dudu Posté 16 Avril 2010 Posté 16 Avril 2010 Salut Je viens de faire un test, le script ignore les balises Html. On ne te parle pas de balises HTML qui passeraient (ça ne serait pas très grave) mais d'injections d'en-têtes. Le premier résultat de la recherche Google proposée plus haut est http://www.phpsecure.info/v2/article/MailHeadersInject.php et explique très clairement le problème (c'est-à-dire grosso modo qu'on peut spammer la terre entière avec ton formulaire. Même sans HTML). Que ton script fonctionne c'est bien. Mais je te conseille très fortement de le sécuriser au plus vite avant de le mettre en production.
Remi Posté 16 Avril 2010 Posté 16 Avril 2010 En tout cas, j'ai bien fait de ne pas faire d'ironie facile du genre "ce n'est pas sur le Hub qu'on trouverait un script pareil..." car, plaf, c'est un script qui vient du Hub. Même s'il est moins dramatique que la seule ligne extraite ne le laissait supposer (le script travaille directement dans le tableau $_POST... bizarre mais bon, ça fonctionne... ), il n'en a pas moins une faille, effectivement sur l'injection d'en-tête : il ne suffit pas d'enlever les balises html, il faut aussi virer les bcc et consorts.
moonwar Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 Merci pour vos réponses, J'ai lu l'article a propos des injections de Header. Apparement, celase fait via le le copie conforme, Pour le tester, j'ai mis comme expéditeur : email1_AT_hotmail,com%0ACc:email2_AT_hotmail,com%0ABcc:email3_AT_hotmail,com Ca me dit : Votre adresse e-mail n'est pas valide... Est-ce que cela veut dire que le script bloque le copie conforme? Pour la fonction Mail(), si je fais un exctract($_Post) avant, est-ce que cela serait moins grave? Merci pour vos precisions.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant