Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
J'utilise la class libmail de Léo West : http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=fr
<cit.> Synopsis
include "libmail.php"; $m= new Mail; // create the mail $m->From( "" ); $m->To( "" ); $m->Subject( "the subject of the mail" ); $m->Body( "HellonThis is a test of the Mail component" ); // set the body
$m->Cc( ""); $m->Bcc( ""); $m->Priority(4) ; // set the priority to Low $m->Attach( "/home/leo/toto.gif", "image/gif", "inline" ) ; // attach a file of type image/gif to be displayed in the message if possible $m->Send(); // send the mail
echo "Mail was sent:" echo $m->Get(); // show the mail source </cit.>
Toutes les variables utilisé par la classe libmail sont initialisées dans mes scripts de la façon suivante :
Tu ne sembles pas vérifier grand chose, et par ailleurs tu ne nous dis pas comment tu les utilises après.
Je peux faire quoi de plus ? Vérifier si la page d'où provient la demande est bien celle qui contient mon formulaire ?
Tu peux : 1) Ne rien mettre que des chaînes codées en dur dans To, Cc et Bcc, voire dans From et Subject si ton utilisation s'y prête. 2) Vérifier qu'il n'y a que des caractères sans danger dans From et Subject s'ils viennent de $_POST. Par exemple que des caractères ASCII entre l'espace (code 32) et le tilde (code 126), mais *surtout* qu'il n'y ait *AUCUN* r ou n.
J'utilise la class libmail de Léo West :
http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=fr
<cit.>
Synopsis
include "libmail.php";
$m= new Mail; // create the mail
$m->From( "leo@isp.com" );
$m->To( "destination@somewhere.fr" );
$m->Subject( "the subject of the mail" );
$m->Body( "HellonThis is a test of the Mail component" ); // set the body
$m->Cc( "someone@somewhere.fr");
$m->Bcc( "someoneelse@somewhere.fr");
$m->Priority(4) ; // set the priority to Low
$m->Attach( "/home/leo/toto.gif", "image/gif", "inline" ) ; // attach a
file of type image/gif to be displayed in the message if possible
$m->Send(); // send the mail
echo "Mail was sent:"
echo $m->Get(); // show the mail source
</cit.>
Toutes les variables utilisé par la classe libmail sont initialisées
dans mes scripts de la façon suivante :
Tu ne sembles pas vérifier grand chose, et par ailleurs tu ne nous dis
pas comment tu les utilises après.
Je peux faire quoi de plus ? Vérifier si la page d'où provient la
demande est bien celle qui contient mon formulaire ?
Tu peux :
1) Ne rien mettre que des chaînes codées en dur dans To, Cc et Bcc,
voire dans From et Subject si ton utilisation s'y prête.
2) Vérifier qu'il n'y a que des caractères sans danger dans From et
Subject s'ils viennent de $_POST. Par exemple que des caractères
ASCII entre l'espace (code 32) et le tilde (code 126), mais
*surtout* qu'il n'y ait *AUCUN* r ou n.
J'utilise la class libmail de Léo West : http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=fr
<cit.> Synopsis
include "libmail.php"; $m= new Mail; // create the mail $m->From( "" ); $m->To( "" ); $m->Subject( "the subject of the mail" ); $m->Body( "HellonThis is a test of the Mail component" ); // set the body
$m->Cc( ""); $m->Bcc( ""); $m->Priority(4) ; // set the priority to Low $m->Attach( "/home/leo/toto.gif", "image/gif", "inline" ) ; // attach a file of type image/gif to be displayed in the message if possible $m->Send(); // send the mail
echo "Mail was sent:" echo $m->Get(); // show the mail source </cit.>
Toutes les variables utilisé par la classe libmail sont initialisées dans mes scripts de la façon suivante :
Tu ne sembles pas vérifier grand chose, et par ailleurs tu ne nous dis pas comment tu les utilises après.
Je peux faire quoi de plus ? Vérifier si la page d'où provient la demande est bien celle qui contient mon formulaire ?
Tu peux : 1) Ne rien mettre que des chaînes codées en dur dans To, Cc et Bcc, voire dans From et Subject si ton utilisation s'y prête. 2) Vérifier qu'il n'y a que des caractères sans danger dans From et Subject s'ils viennent de $_POST. Par exemple que des caractères ASCII entre l'espace (code 32) et le tilde (code 126), mais *surtout* qu'il n'y ait *AUCUN* r ou n.
messian_nospam
Olivier Miakinen <om+ wrote:
Tu peux : 1) Ne rien mettre que des chaînes codées en dur dans To, Cc et Bcc, voire dans From et Subject si ton utilisation s'y prête. 2) Vérifier qu'il n'y a que des caractères sans danger dans From et Subject s'ils viennent de $_POST. Par exemple que des caractères ASCII entre l'espace (code 32) et le tilde (code 126), mais *surtout* qu'il n'y ait *AUCUN* r ou n.
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ne serait-il pas plus efficace et plus rapide de vérifier dans chacun des scripts qui utilise la fonction mail() de php que le formulaire d'où provient la demande est bien sur mon serveur ?
-- Un moyen de garde pour vos enfants ? http://www.easynounou.com
Olivier Miakinen <om+news@miakinen.net> wrote:
Tu peux :
1) Ne rien mettre que des chaînes codées en dur dans To, Cc et Bcc,
voire dans From et Subject si ton utilisation s'y prête.
2) Vérifier qu'il n'y a que des caractères sans danger dans From et
Subject s'ils viennent de $_POST. Par exemple que des caractères
ASCII entre l'espace (code 32) et le tilde (code 126), mais
*surtout* qu'il n'y ait *AUCUN* r ou n.
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les
champs qui peuvent servir à l'injonction... pas trop le temps en ce
moment.
Ne serait-il pas plus efficace et plus rapide de vérifier dans chacun
des scripts qui utilise la fonction mail() de php que le formulaire d'où
provient la demande est bien sur mon serveur ?
Tu peux : 1) Ne rien mettre que des chaînes codées en dur dans To, Cc et Bcc, voire dans From et Subject si ton utilisation s'y prête. 2) Vérifier qu'il n'y a que des caractères sans danger dans From et Subject s'ils viennent de $_POST. Par exemple que des caractères ASCII entre l'espace (code 32) et le tilde (code 126), mais *surtout* qu'il n'y ait *AUCUN* r ou n.
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ne serait-il pas plus efficace et plus rapide de vérifier dans chacun des scripts qui utilise la fonction mail() de php que le formulaire d'où provient la demande est bien sur mon serveur ?
-- Un moyen de garde pour vos enfants ? http://www.easynounou.com
Olivier Miakinen
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Note que le filtre peut être aussi simple que : $from = preg_replace("/[rn]/", "", $from); $subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To, Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Ne serait-il pas plus efficace et plus rapide de vérifier dans chacun des scripts qui utilise la fonction mail() de php que le formulaire d'où provient la demande est bien sur mon serveur ?
[...] if ($url_origine==$_SERVER['HTTP_REFERER']) {
Je ne vois pas en quoi cela empêche le spam, et ce pour deux raisons. L'une des raisons est que l'attaque peut venir d'un de tes propres formulaires si tu offres un champ de saisie relativement libre. Mais la raison principale est que $_SERVER['HTTP_REFERER'] peut être pipoté sans aucune difficulté par un spammeur. C'est même probablement la première chose qu'il positionne.
==> Protection = ZÉRO
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les
champs qui peuvent servir à l'injonction... pas trop le temps en ce
moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais
à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Note que le filtre peut être aussi simple que :
$from = preg_replace("/[rn]/", "", $from);
$subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To,
Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Ne serait-il pas plus efficace et plus rapide de vérifier dans chacun
des scripts qui utilise la fonction mail() de php que le formulaire d'où
provient la demande est bien sur mon serveur ?
[...]
if ($url_origine==$_SERVER['HTTP_REFERER']) {
Je ne vois pas en quoi cela empêche le spam, et ce pour deux raisons.
L'une des raisons est que l'attaque peut venir d'un de tes propres
formulaires si tu offres un champ de saisie relativement libre. Mais
la raison principale est que $_SERVER['HTTP_REFERER'] peut être pipoté
sans aucune difficulté par un spammeur. C'est même probablement la
première chose qu'il positionne.
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Note que le filtre peut être aussi simple que : $from = preg_replace("/[rn]/", "", $from); $subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To, Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Ne serait-il pas plus efficace et plus rapide de vérifier dans chacun des scripts qui utilise la fonction mail() de php que le formulaire d'où provient la demande est bien sur mon serveur ?
[...] if ($url_origine==$_SERVER['HTTP_REFERER']) {
Je ne vois pas en quoi cela empêche le spam, et ce pour deux raisons. L'une des raisons est que l'attaque peut venir d'un de tes propres formulaires si tu offres un champ de saisie relativement libre. Mais la raison principale est que $_SERVER['HTTP_REFERER'] peut être pipoté sans aucune difficulté par un spammeur. C'est même probablement la première chose qu'il positionne.
==> Protection = ZÉRO
messian_nospam
Olivier Miakinen <om+ wrote:
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Evidemment !
Note que le filtre peut être aussi simple que : $from = preg_replace("/[rn]/", "", $from); $subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To, Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Justement, il faut que je décortique la class libmail.php pour les Cc et Bcc. Je me demande si elle est bien sécurisée.
-- Un moyen de garde pour vos enfants ? http://www.easynounou.com
Olivier Miakinen <om+news@miakinen.net> wrote:
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les
champs qui peuvent servir à l'injonction... pas trop le temps en ce
moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais
à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Evidemment !
Note que le filtre peut être aussi simple que :
$from = preg_replace("/[rn]/", "", $from);
$subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To,
Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Justement, il faut que je décortique la class libmail.php pour les Cc et
Bcc. Je me demande si elle est bien sécurisée.
--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Evidemment !
Note que le filtre peut être aussi simple que : $from = preg_replace("/[rn]/", "", $from); $subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To, Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Justement, il faut que je décortique la class libmail.php pour les Cc et Bcc. Je me demande si elle est bien sécurisée.
-- Un moyen de garde pour vos enfants ? http://www.easynounou.com
filh
JF Messian wrote:
Olivier Miakinen <om+ wrote:
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Evidemment !
Note que le filtre peut être aussi simple que : $from = preg_replace("/[rn]/", "", $from); $subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To, Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Justement, il faut que je décortique la class libmail.php pour les Cc et Bcc. Je me demande si elle est bien sécurisée.
En fait j'avais trouvé un truc tout con pour éviter les injections était de fixer les destinataires dans le code, et d'encapsuler tout ce qui arrivait de l'extérieur dans une pièce jointe mime...
Ce qui fait que ce qui est variable n'est pas du tout traité par les MTA.
Ceci demande que les destinataires soient forcément fixes connus d'avance.
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les
champs qui peuvent servir à l'injonction... pas trop le temps en ce
moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais
à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Evidemment !
Note que le filtre peut être aussi simple que :
$from = preg_replace("/[rn]/", "", $from);
$subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To,
Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Justement, il faut que je décortique la class libmail.php pour les Cc et
Bcc. Je me demande si elle est bien sécurisée.
En fait j'avais trouvé un truc tout con pour éviter les injections était
de fixer les destinataires dans le code, et d'encapsuler tout ce qui
arrivait de l'extérieur dans une pièce jointe mime...
Ce qui fait que ce qui est variable n'est pas du tout traité par les
MTA.
Ceci demande que les destinataires soient forcément fixes connus
d'avance.
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
Il faudrait que j'ajoute un filtre pour vérifier le contenu de tous les champs qui peuvent servir à l'injonction... pas trop le temps en ce moment.
Ça ne te gêne pas aux entournures de savoir que ton site sert de relais à spam ? Et que tu risques de te faire blacklister si tu ne fais rien ?
Evidemment !
Note que le filtre peut être aussi simple que : $from = preg_replace("/[rn]/", "", $from); $subject = preg_replace("/[rn]/", "", $subject);
(du moins en espérant que ce n'est pas l'utilisateur qui peut fixer To, Cc ou Bcc, car sinon tu lui offres une machine à spam dorée).
Justement, il faut que je décortique la class libmail.php pour les Cc et Bcc. Je me demande si elle est bien sécurisée.
En fait j'avais trouvé un truc tout con pour éviter les injections était de fixer les destinataires dans le code, et d'encapsuler tout ce qui arrivait de l'extérieur dans une pièce jointe mime...
Ce qui fait que ce qui est variable n'est pas du tout traité par les MTA.
Ceci demande que les destinataires soient forcément fixes connus d'avance.
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
messian_nospam
FiLH wrote:
En fait j'avais trouvé un truc tout con pour éviter les injections était de fixer les destinataires dans le code, et d'encapsuler tout ce qui arrivait de l'extérieur dans une pièce jointe mime...
Tu peux développer un peu ?
Ce qui fait que ce qui est variable n'est pas du tout traité par les MTA.
C'est quoi les MTA ?
MERCI !
-- Un moyen de garde pour vos enfants ? http://www.easynounou.com
FiLH <filh@filh.orgie> wrote:
En fait j'avais trouvé un truc tout con pour éviter les injections était
de fixer les destinataires dans le code, et d'encapsuler tout ce qui
arrivait de l'extérieur dans une pièce jointe mime...
Tu peux développer un peu ?
Ce qui fait que ce qui est variable n'est pas du tout traité par les
MTA.
C'est quoi les MTA ?
MERCI !
--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
En fait j'avais trouvé un truc tout con pour éviter les injections était de fixer les destinataires dans le code, et d'encapsuler tout ce qui arrivait de l'extérieur dans une pièce jointe mime...
Tu peux développer un peu ?
Ce qui fait que ce qui est variable n'est pas du tout traité par les MTA.
C'est quoi les MTA ?
MERCI !
-- Un moyen de garde pour vos enfants ? http://www.easynounou.com
filh
JF Messian wrote:
FiLH wrote:
En fait j'avais trouvé un truc tout con pour éviter les injections était de fixer les destinataires dans le code, et d'encapsuler tout ce qui arrivait de l'extérieur dans une pièce jointe mime...
Tu peux développer un peu ?
On subissait des injections par l'ajout de faux entêtes mimes qui redélimitaient les header (au niveau du to: à partir du from :)). Un truc un peu à la con.
Donc faire une pièce jointe (même de type ascii) du texte saisi permet d'être sûr que son contenu ne jouera pas avec les headers.
Ce qui fait que ce qui est variable n'est pas du tout traité par les MTA.
C'est quoi les MTA ?
Mail Transport Agent...
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org
En fait j'avais trouvé un truc tout con pour éviter les injections était
de fixer les destinataires dans le code, et d'encapsuler tout ce qui
arrivait de l'extérieur dans une pièce jointe mime...
Tu peux développer un peu ?
On subissait des injections par l'ajout de faux entêtes mimes qui
redélimitaient les header (au niveau du to: à partir du from :)). Un
truc un peu à la con.
Donc faire une pièce jointe (même de type ascii) du texte saisi permet
d'être sûr que son contenu ne jouera pas avec les headers.
Ce qui fait que ce qui est variable n'est pas du tout traité par les
MTA.
C'est quoi les MTA ?
Mail Transport Agent...
FiLH
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org
En fait j'avais trouvé un truc tout con pour éviter les injections était de fixer les destinataires dans le code, et d'encapsuler tout ce qui arrivait de l'extérieur dans une pièce jointe mime...
Tu peux développer un peu ?
On subissait des injections par l'ajout de faux entêtes mimes qui redélimitaient les header (au niveau du to: à partir du from :)). Un truc un peu à la con.
Donc faire une pièce jointe (même de type ascii) du texte saisi permet d'être sûr que son contenu ne jouera pas avec les headers.
Ce qui fait que ce qui est variable n'est pas du tout traité par les MTA.
C'est quoi les MTA ?
Mail Transport Agent...
FiLH
-- Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle. Roland Barthes. http://www.filh.org