J'ai récupéré un bout de code php pour créer un livre d'or sur le site
d'une amie.
Le seul souci c que chaque jour il est infesté de spam...
J'ai essayé de mettre des liens spampoison censé "aspirer" les robots,
mais ca marche pas du tout...
http://www.larmesdenacres.fr/guestbook.php
Si vous avez un petit truc simple à implémenter, ou une astuce quelconque...
D'avance merci pour toute info.
Quid des noms de domaines à trois niveaux ? Ah si, tu as laissé traîner un . dans la partie droite, ce qui autorisera une adresse telle que (ce qui n'était probablement pas voulu).
Mais si mais si. C'est bien l'origine du 6.
Tu n'as pas compris que je parlais des « . ». Ton expression autorise une adresse avec que des « . » à gauche et plein de « . » à droite. Mais elle refuse un « + » à gauche et un chiffre dans le TLD.
Que se passera-t-il quand il existera des TLD à plus de 6 lettres ou avec des chiffres ?
Je modifierai la règle. Et je ne suis pas sûr d'avoir de travail avant quelques temps, mais je me trompe peut-être...
En fait, la question est plutôt : pourquoi interdire des choses qui sont potentiellement autorisées, quand tu autorises des choses clairement interdites ?
Ah ! Je ne savais pas que le "+" était accepté. Y a-t-il d'autres caractères que j'aurais oublié?
Tout est dit dans la FAQ de PHP, rédigée avec amour suite à une longue discussion dans les forums et surtout de longues recherches dans les documents de référence.
Je redonne le lien : <http://faqfclphp.free.fr/#rub5.3>.
Le 19/10/2007 16:31, Michael DENIS a écrit :
Quid des noms de domaines à trois niveaux ? Ah si, tu as laissé traîner
un . dans la partie droite, ce qui autorisera une adresse telle que
<.....@.....museum> (ce qui n'était probablement pas voulu).
Mais si mais si. C'est bien l'origine du 6.
Tu n'as pas compris que je parlais des « . ». Ton expression autorise
une adresse avec que des « . » à gauche et plein de « . » à droite.
Mais elle refuse un « + » à gauche et un chiffre dans le TLD.
Que se passera-t-il quand il existera des TLD à plus de 6 lettres ou
avec des chiffres ?
Je modifierai la règle. Et je ne suis pas sûr d'avoir de travail avant
quelques temps, mais je me trompe peut-être...
En fait, la question est plutôt : pourquoi interdire des choses qui sont
potentiellement autorisées, quand tu autorises des choses clairement
interdites ?
Ah ! Je ne savais pas que le "+" était accepté. Y a-t-il d'autres
caractères que j'aurais oublié?
Tout est dit dans la FAQ de PHP, rédigée avec amour suite à une longue
discussion dans les forums et surtout de longues recherches dans les
documents de référence.
Je redonne le lien : <http://faqfclphp.free.fr/#rub5.3>.
Quid des noms de domaines à trois niveaux ? Ah si, tu as laissé traîner un . dans la partie droite, ce qui autorisera une adresse telle que (ce qui n'était probablement pas voulu).
Mais si mais si. C'est bien l'origine du 6.
Tu n'as pas compris que je parlais des « . ». Ton expression autorise une adresse avec que des « . » à gauche et plein de « . » à droite. Mais elle refuse un « + » à gauche et un chiffre dans le TLD.
Que se passera-t-il quand il existera des TLD à plus de 6 lettres ou avec des chiffres ?
Je modifierai la règle. Et je ne suis pas sûr d'avoir de travail avant quelques temps, mais je me trompe peut-être...
En fait, la question est plutôt : pourquoi interdire des choses qui sont potentiellement autorisées, quand tu autorises des choses clairement interdites ?
Ah ! Je ne savais pas que le "+" était accepté. Y a-t-il d'autres caractères que j'aurais oublié?
Tout est dit dans la FAQ de PHP, rédigée avec amour suite à une longue discussion dans les forums et surtout de longues recherches dans les documents de référence.
Je redonne le lien : <http://faqfclphp.free.fr/#rub5.3>.
Michael DENIS
Le 19 Oct 2007 16:00:04 +0200, Olivier Miakinen <om+ écrivait:
Voir <http://faqfclphp.free.fr/#rub5.3>, merci.
[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]
Là je suis étonné. C'est issu d'une "RFC"?
Il est à noter que la règle que je présentais devrait être précédée de:
$_POST['totm'] = strtolower($_POST['totm']);
ce qui explique l'absence de "A-Z" dans la règle.
Autre petite erreur dans ma règle: le "_" n'est pas autorisé dans les domaines. Nous serions donc plutôt à quelque chose comme:
Que se passera-t-il quand il existera des TLD à plus de 6 lettres ou avec des chiffres ?
Je modifierai la règle.
Ah. Et comment sais-tu si oui ou non il existe *déjà* des TLD à plus de six lettres ou avec des chiffres ?
Ah ! Je ne savais pas que le "+" était accepté. Y a-t-il d'autres caractères que j'aurais oublié?
Ma question précédente prend d'autant plus de poids du fait que tu ne savais pas quels sont les caractères autorisés depuis toujours dans la partie gauche. Puisque tu ne le sais pas pour ce qui est à gauche, comment espères-tu être au courant immédiatement de ce qui se fait à droite ?
Pardon si j'en remets une couche...
Le 19/10/2007 16:31, Michael DENIS a écrit :
Que se passera-t-il quand il existera des TLD à plus de 6 lettres ou
avec des chiffres ?
Je modifierai la règle.
Ah. Et comment sais-tu si oui ou non il existe *déjà* des TLD à plus de
six lettres ou avec des chiffres ?
Ah ! Je ne savais pas que le "+" était accepté. Y a-t-il d'autres
caractères que j'aurais oublié?
Ma question précédente prend d'autant plus de poids du fait que tu ne
savais pas quels sont les caractères autorisés depuis toujours dans la
partie gauche. Puisque tu ne le sais pas pour ce qui est à gauche,
comment espères-tu être au courant immédiatement de ce qui se fait à
droite ?
Que se passera-t-il quand il existera des TLD à plus de 6 lettres ou avec des chiffres ?
Je modifierai la règle.
Ah. Et comment sais-tu si oui ou non il existe *déjà* des TLD à plus de six lettres ou avec des chiffres ?
Ah ! Je ne savais pas que le "+" était accepté. Y a-t-il d'autres caractères que j'aurais oublié?
Ma question précédente prend d'autant plus de poids du fait que tu ne savais pas quels sont les caractères autorisés depuis toujours dans la partie gauche. Puisque tu ne le sais pas pour ce qui est à gauche, comment espères-tu être au courant immédiatement de ce qui se fait à droite ?
Ah non, là tu interdis tout point en partie gauche.
Pourquoi ne pas adopter la version la plus simple de la FAQ ? if (preg_match('/^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/', $email)) { ... }
Michael DENIS
Le Fri, 19 Oct 2007 16:45:43 +0200, Olivier Miakinen <om+ écrivait:
Tu n'as pas compris que je parlais des « . ».
Effectivement, je n'avais pas compris. Je lisais "..." comme un joker... :-)
Ton expression autorise une adresse avec que des « . » à gauche et plein de « . » à droite. Mais elle refuse un « + » à gauche et un chiffre dans le TLD.
C'est un fait. Et je me rends compte en lisant un peu plus loin la faq que la version "parano" présentée
if (preg_match('/^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/', $email)) { ... }
n'est pas très loin de la mienne une fois corrigée. :-)
En fait, la question est plutôt : pourquoi interdire des choses qui sont potentiellement autorisées, quand tu autorises des choses clairement interdites ?
Ce n'est pas tout à fait faut.
Une des questions que je m'étais posée en faisant cette règle était aussi: quels sont les caractères les plus dangereux en cas de tentative de contournement, en particulier pour des choses que je ne maîtrise pas du tout tel que les dépassements de mémoire, etc... Les caractères tels que les jokers ne sont-ils pas potentiellement plus problématiques?
-- Michaël DENIS
Le Fri, 19 Oct 2007 16:45:43 +0200, Olivier Miakinen
<om+news@miakinen.net> écrivait:
Tu n'as pas compris que je parlais des « . ».
Effectivement, je n'avais pas compris. Je lisais "..." comme un
joker... :-)
Ton expression autorise
une adresse avec que des « . » à gauche et plein de « . » à droite.
Mais elle refuse un « + » à gauche et un chiffre dans le TLD.
C'est un fait. Et je me rends compte en lisant un peu plus loin la faq
que la version "parano" présentée
if (preg_match('/^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/', $email)) { ... }
n'est pas très loin de la mienne une fois corrigée. :-)
En fait, la question est plutôt : pourquoi interdire des choses qui sont
potentiellement autorisées, quand tu autorises des choses clairement
interdites ?
Ce n'est pas tout à fait faut.
Une des questions que je m'étais posée en faisant cette règle était
aussi: quels sont les caractères les plus dangereux en cas de
tentative de contournement, en particulier pour des choses que je ne
maîtrise pas du tout tel que les dépassements de mémoire, etc... Les
caractères tels que les jokers ne sont-ils pas potentiellement plus
problématiques?
Le Fri, 19 Oct 2007 16:45:43 +0200, Olivier Miakinen <om+ écrivait:
Tu n'as pas compris que je parlais des « . ».
Effectivement, je n'avais pas compris. Je lisais "..." comme un joker... :-)
Ton expression autorise une adresse avec que des « . » à gauche et plein de « . » à droite. Mais elle refuse un « + » à gauche et un chiffre dans le TLD.
C'est un fait. Et je me rends compte en lisant un peu plus loin la faq que la version "parano" présentée
if (preg_match('/^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/', $email)) { ... }
n'est pas très loin de la mienne une fois corrigée. :-)
En fait, la question est plutôt : pourquoi interdire des choses qui sont potentiellement autorisées, quand tu autorises des choses clairement interdites ?
Ce n'est pas tout à fait faut.
Une des questions que je m'étais posée en faisant cette règle était aussi: quels sont les caractères les plus dangereux en cas de tentative de contournement, en particulier pour des choses que je ne maîtrise pas du tout tel que les dépassements de mémoire, etc... Les caractères tels que les jokers ne sont-ils pas potentiellement plus problématiques?
-- Michaël DENIS
Michael DENIS
Le Fri, 19 Oct 2007 16:56:16 +0200, Olivier Miakinen <om+ écrivait:
Oui. RFC 822 er 2822.
Bon. Alors je m'incline... bien bas. ;-) Et je vais faire évoluer ma règle... une fois que je me serai relevé. :-D
Il doit y avoir une différence entre [a-z0-9._+-]+ et [.a-z0-9+_-]+ que je ne saisis pas...
-- Michaël DENIS
Olivier Miakinen
Le 19/10/2007 16:59, Michael DENIS a écrit :
[...] Et je me rends compte en lisant un peu plus loin la faq que la version "parano" présentée
if (preg_match('/^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/', $email)) { ... }
n'est pas très loin de la mienne une fois corrigée. :-)
Oui, absolument.
Une des questions que je m'étais posée en faisant cette règle était aussi: quels sont les caractères les plus dangereux en cas de tentative de contournement, en particulier pour des choses que je ne maîtrise pas du tout tel que les dépassements de mémoire, etc... Les caractères tels que les jokers ne sont-ils pas potentiellement plus problématiques?
D'où la version parano d'où sont exclus des caractères valides, mais jamais utilisés et potentiellement dangereux (ampersand, apostrophes, point d'interrogation et toute la clique).
En revanche, interdire les chiffres dans le TLD (ou deux points de suite) ne sert à rien d'autre qu'à alourdir l'expression.
Le 19/10/2007 16:59, Michael DENIS a écrit :
[...] Et je me rends compte en lisant un peu plus loin la faq
que la version "parano" présentée
if (preg_match('/^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/', $email)) { ... }
n'est pas très loin de la mienne une fois corrigée. :-)
Oui, absolument.
Une des questions que je m'étais posée en faisant cette règle était
aussi: quels sont les caractères les plus dangereux en cas de
tentative de contournement, en particulier pour des choses que je ne
maîtrise pas du tout tel que les dépassements de mémoire, etc... Les
caractères tels que les jokers ne sont-ils pas potentiellement plus
problématiques?
D'où la version parano d'où sont exclus des caractères valides, mais
jamais utilisés et potentiellement dangereux (ampersand, apostrophes,
point d'interrogation et toute la clique).
En revanche, interdire les chiffres dans le TLD (ou deux points de
suite) ne sert à rien d'autre qu'à alourdir l'expression.
[...] Et je me rends compte en lisant un peu plus loin la faq que la version "parano" présentée
if (preg_match('/^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/', $email)) { ... }
n'est pas très loin de la mienne une fois corrigée. :-)
Oui, absolument.
Une des questions que je m'étais posée en faisant cette règle était aussi: quels sont les caractères les plus dangereux en cas de tentative de contournement, en particulier pour des choses que je ne maîtrise pas du tout tel que les dépassements de mémoire, etc... Les caractères tels que les jokers ne sont-ils pas potentiellement plus problématiques?
D'où la version parano d'où sont exclus des caractères valides, mais jamais utilisés et potentiellement dangereux (ampersand, apostrophes, point d'interrogation et toute la clique).
En revanche, interdire les chiffres dans le TLD (ou deux points de suite) ne sert à rien d'autre qu'à alourdir l'expression.
Olivier Miakinen
Le 19/10/2007 17:07, Michael DENIS a écrit :
Il doit y avoir une différence entre [a-z0-9._+-]+ et [.a-z0-9+_-]+ que je ne saisis pas...
:-D
Non, pas du tout. Je n'insistais sur les séries de points que pour montrer le ridicule d'autoriser ceci tout en interdisant d'autres choses parfaitement valides.
De toute façon, puisqu'il était question dans ce fil d'empêcher le spam, le contrôle d'adresses email n'est pas très utile dans ce contexte : les spammeurs n'utilisent que des adresses qui passent les plus stupides de tous les tests de syntaxe (du genre de par exemple).
Le 19/10/2007 17:07, Michael DENIS a écrit :
Il doit y avoir une différence entre
[a-z0-9._+-]+
et
[.a-z0-9+_-]+
que je ne saisis pas...
:-D
Non, pas du tout. Je n'insistais sur les séries de points que pour
montrer le ridicule d'autoriser ceci tout en interdisant d'autres choses
parfaitement valides.
De toute façon, puisqu'il était question dans ce fil d'empêcher le spam,
le contrôle d'adresses email n'est pas très utile dans ce contexte : les
spammeurs n'utilisent que des adresses qui passent les plus stupides de
tous les tests de syntaxe (du genre de best@viagra.com par exemple).
Il doit y avoir une différence entre [a-z0-9._+-]+ et [.a-z0-9+_-]+ que je ne saisis pas...
:-D
Non, pas du tout. Je n'insistais sur les séries de points que pour montrer le ridicule d'autoriser ceci tout en interdisant d'autres choses parfaitement valides.
De toute façon, puisqu'il était question dans ce fil d'empêcher le spam, le contrôle d'adresses email n'est pas très utile dans ce contexte : les spammeurs n'utilisent que des adresses qui passent les plus stupides de tous les tests de syntaxe (du genre de par exemple).
Michael DENIS
Le Fri, 19 Oct 2007 16:56:16 +0200, Olivier Miakinen <om+ écrivait:
Pourquoi ne pas adopter la version la plus simple de la FAQ ?
Non. La version complète me parait sympa une fois passé le temps nécessaire à sa copmpréhension. Dans mon cas, je verrais bien:
$ltext = '[a-z0-9$&+_-]+'; $rtext = '[a-z0-9-]+'; if (!preg_match('`^$ltext(.$ltext)*@$rtext(.$rtext)+$`',$_POST['totm'])) { ...
(avec bien sûr un "strtolower" juste avant).
Pas d'erreur?
...
Du coup, en relisant un peu, je me rend compte qu'une adresse "" serait valide?
-- Michaël DENIS
Le Fri, 19 Oct 2007 16:56:16 +0200, Olivier Miakinen
<om+news@miakinen.net> écrivait:
Pourquoi ne pas adopter la version la plus simple de la FAQ ?
Non. La version complète me parait sympa une fois passé le temps
nécessaire à sa copmpréhension. Dans mon cas, je verrais bien:
$ltext = '[a-z0-9$&+_-]+';
$rtext = '[a-z0-9-]+';
if
(!preg_match('`^$ltext(.$ltext)*@$rtext(.$rtext)+$`',$_POST['totm']))
{ ...
(avec bien sûr un "strtolower" juste avant).
Pas d'erreur?
...
Du coup, en relisant un peu, je me rend compte qu'une adresse
"____@mondom.com" serait valide?
Le Fri, 19 Oct 2007 16:56:16 +0200, Olivier Miakinen <om+ écrivait:
Pourquoi ne pas adopter la version la plus simple de la FAQ ?
Non. La version complète me parait sympa une fois passé le temps nécessaire à sa copmpréhension. Dans mon cas, je verrais bien:
$ltext = '[a-z0-9$&+_-]+'; $rtext = '[a-z0-9-]+'; if (!preg_match('`^$ltext(.$ltext)*@$rtext(.$rtext)+$`',$_POST['totm'])) { ...
(avec bien sûr un "strtolower" juste avant).
Pas d'erreur?
...
Du coup, en relisant un peu, je me rend compte qu'une adresse "" serait valide?
-- Michaël DENIS
Michael DENIS
Le Fri, 19 Oct 2007 17:21:43 +0200, Olivier Miakinen <om+ écrivait:
De toute façon, puisqu'il était question dans ce fil d'empêcher le spam, le contrôle d'adresses email n'est pas très utile dans ce contexte : les spammeurs n'utilisent que des adresses qui passent les plus stupides de tous les tests de syntaxe (du genre de par exemple).
Là, l'intérêt est peut-être double. D'abord empêcher l'apparition d'url de pub dans le champ mail comme c'est le cas actuellement. Car pour l'instant, Pat n'a encore visiblement rien! Ensuite, éviter l'éventuel contournement du formulaire pour l'envoi de spam dans le cas où le contenu serait envoyé par mail.
-- Michaël DENIS
Le Fri, 19 Oct 2007 17:21:43 +0200, Olivier Miakinen
<om+news@miakinen.net> écrivait:
De toute façon, puisqu'il était question dans ce fil d'empêcher le spam,
le contrôle d'adresses email n'est pas très utile dans ce contexte : les
spammeurs n'utilisent que des adresses qui passent les plus stupides de
tous les tests de syntaxe (du genre de best@viagra.com par exemple).
Là, l'intérêt est peut-être double. D'abord empêcher l'apparition
d'url de pub dans le champ mail comme c'est le cas actuellement. Car
pour l'instant, Pat n'a encore visiblement rien! Ensuite, éviter
l'éventuel contournement du formulaire pour l'envoi de spam dans le
cas où le contenu serait envoyé par mail.
Le Fri, 19 Oct 2007 17:21:43 +0200, Olivier Miakinen <om+ écrivait:
De toute façon, puisqu'il était question dans ce fil d'empêcher le spam, le contrôle d'adresses email n'est pas très utile dans ce contexte : les spammeurs n'utilisent que des adresses qui passent les plus stupides de tous les tests de syntaxe (du genre de par exemple).
Là, l'intérêt est peut-être double. D'abord empêcher l'apparition d'url de pub dans le champ mail comme c'est le cas actuellement. Car pour l'instant, Pat n'a encore visiblement rien! Ensuite, éviter l'éventuel contournement du formulaire pour l'envoi de spam dans le cas où le contenu serait envoyé par mail.