Affichage d'une adresse mail, solution anti-spam tout en php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage d'une adresse mail, solution anti-spam tout en php

par AB » 18 mars 2007, 16:40

Bonjour,

Il y a également une solution originale ici http://mikecherim.com/gbcms_xml/news_page.php?id=17#n17

par jlvill » 20 févr. 2007, 07:33

Ensuite, on cherche une solution "pure" (le terme est mauvais, mais je n'en trouve pas d'autre qui convient mieux à mon idée). Id est qui est faite en PHP, sans ajouter d'autre programme derrière ou par dessus, à l'instar du tien non ?
Car il suffit que pour une raison quelconque, l'utilisateur (du moins, son système) ne puisse pas accepter le programme, et alors, tout est foutu.

Je navigue très souvent sur Mac, Linux et Win, et je me soucis donc de la portabilité des programmes ; ce qui -- normalement -- ne devrait jamais être à préciser ...
Salut,
Le problème de portabilité est un problème important, j'en conviens ... et l'utilisation sur de plusieurs système aussi. Une possiblité est l'utilisation d'une méthode combinée (mais manuel).

Je m'explique. Le même principe qui est appliquer http://pidware.com/fr/nousjoindre.php SAUF que tu utilses les régles de filtre permi par tes différents clients email. Ex: Si tu ne trouve pas [QWERTY] (lettre apparaissant dans l'image) alors déplace le courriel reçu dans un dossier de tri. Ça peut de servir pour un premier filtrage.

L'avantage c'est que c'est indépendant de la plate-forme, le désavantage c'est le traitement manuel (modification de l'image en relation avec les filtres appliqués) qu'il faut faire...

je ne sais pas si ça peut aider... bon succès!

par slyfog » 16 févr. 2007, 20:22

Ah oui très bonne idée le xml !

Je vais y réflechir ^^

En fait j'avai développé ça à l'origine pour Spip, donc si ça interesse quelqu'un...

Il fonctionne avec un filtre qui formatte le texte et qui crée une image du mail une fois la fenetre ouverte.

Si j'ai le temps, faudra aussi que je le fasse en plugin.

par zeus » 16 févr. 2007, 20:09

Effectivement, j'avais lu le code en diagonale :-k

Cette solution est pas mal du tout.

La seule petite évolution que je verrais serait d'utiliser une base de données plutôt que d'un fichier.
Ou alors d'avoir une couche d'encapsulation qui gère un fichier XML qui contient les adresses, à la rigueur :-k

En tout cas, très bonne contribution :pouce:

par slyfog » 16 févr. 2007, 20:06

@Zeus, non le mail n'est aucunement dans la source html justement

En fait le lien dans le html est tel de cette sorte :

<a href="envoi.php?mail=henri">Contactez Henri</a>

ensuite dans le php :
$henri = "[email protected]";
puis pour la recuperer on utilise $ $_GET ['mail']

comme ça apparait vraiment que au lancement du client mail.

@jojolapine & lord.annonymous
oui je me suis heurté au même problème et j'ai utilisé aussi du javascript pour ouvrir une fenetre et la refermer après, mais pas exactement le même code, je vais essayer ta technique lord.

Parce que y'a des problèmes j'ai l'impression aussi en fonction du navigateur, sur firefox pas de problèmes pour mettre du code après un envoi de header il va bien l'afficher, mais sur certaines versions d'IE je crois il le prend pas et donc il referme pas la fenetre, bon au pire, le visiteur à une fenetre blanche qu'il lui faut refermer lui même.

par lord.anonymous » 16 févr. 2007, 17:33

@slyfog:
Je suis moi même en train de dévelloper exactement le même sytème (à quelques changements près..)
Içi!
Seulement, mon principal problème, c'est qu'après l'envoi d'entête au navigateur, plus moyens de rediriger l'utilisateur, qui reste "planté" sur sa page blanche... et ça, je suis pas d'accord :)
Mais je cherche toujours.... (un peu moins activement qu'au début c'est vrai :langue: mais je n'ai pas abandonné!)

@zeus:
Je ne vois pas ce que tu reproche au fait que l'email soit dans le source php?
C'est vrai que si on a une bdd, autant passer simplement un identifiant, mais dans le cas contraire, pourquoi vouloir enlever le mail d'une source php, qui à moins d'un crash/faille serveur n'est pas accessible...
Pour ce qui est en gras j'ai la solution. Tu fais ça:
<?
header('location:mailto:[email protected]');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
  <head> 
  </head>
  <body onload="window.close()">
  </body>
</html>
Pour le lien qui appelle cette page tu fais:
<a href="" onclick="window.open('fonction_mail.php', '_blank')">Envoyer un mail</a>

par zeus » 16 févr. 2007, 17:30

@zeus:
Je ne vois pas ce que tu reproche au fait que l'email soit dans le source php?
C'est vrai que si on a une bdd, autant passer simplement un identifiant, mais dans le cas contraire, pourquoi vouloir enlever le mail d'une source php, qui à moins d'un crash/faille serveur n'est pas accessible...
Je parlais du source HTML

Si tu as un lien

Code : Tout sélectionner

<a href="[email protected]">...</a>
tu auras beau mettre toutes les images que tu veux pour que cet email n'apparaissent pas sur le navigateur, les robots seront capable de la trouver dans le source HTML ;)

par jojolapine » 16 févr. 2007, 17:21

@slyfog:
Je suis moi même en train de dévelloper exactement le même sytème (à quelques changements près..)
Içi!
Seulement, mon principal problème, c'est qu'après l'envoi d'entête au navigateur, plus moyens de rediriger l'utilisateur, qui reste "planté" sur sa page blanche... et ça, je suis pas d'accord :)
Mais je cherche toujours.... (un peu moins activement qu'au début c'est vrai :langue: mais je n'ai pas abandonné!)

@zeus:
Je ne vois pas ce que tu reproche au fait que l'email soit dans le source php?
C'est vrai que si on a une bdd, autant passer simplement un identifiant, mais dans le cas contraire, pourquoi vouloir enlever le mail d'une source php, qui à moins d'un crash/faille serveur n'est pas accessible...

par lord.anonymous » 16 févr. 2007, 13:07

La limite que je trouve à cette méthode, c'est que le mail est toujours présent dans le source :?

Les bots ne se limitent pas à ce qui est visible mais cherchent tous ce qui ressemble à une adresse email, même si elle dans le href d'une balise <a>.

Ton système est intéressant mais il faudrait le pousser pour ne passer qu'un identifiant permettant de retrouver l'email et non pas l'email.
Je pense qu'effectivement c'est plus prudent.

D'ailleurs je pose une question à propos des robots, voir ici:
http://www.phpfrance.com/forums/voir_re ... php#179021

par zeus » 16 févr. 2007, 12:40

La limite que je trouve à cette méthode, c'est que le mail est toujours présent dans le source :?

Les bots ne se limitent pas à ce qui est visible mais cherchent tous ce qui ressemble à une adresse email, même si elle dans le href d'une balise <a>.

Ton système est intéressant mais il faudrait le pousser pour ne passer qu'un identifiant permettant de retrouver l'email et non pas l'email.

par slyfog » 16 févr. 2007, 10:46

Salut à tous,

me trouvant dans la même situation, j'ai fait il y a peu de temps un systeme très efficace et pourtant très simple, il vaux ce qu'il vaux et à ses avantages et ses inconvéniants.

L'idée est de n'avoir a aucun moment l'adresse en brut dans le code html, pour cela :

- on défini nos adresses email dans un fichier php (donc visible coté serveur seulement).
- on met un lien <a href="envoi.php?mail=toto">contacter toto</a> (ou mettre une image du véritable mail comme je l'ai fait )
- le php teste si $toto existe on renvoi sa valeur directement dans le client mail du visiteur

Mais comment on envoi une adresse directement dans le client mail ?
J'y arrive, j'y arrive ! :)

Eh bien grace aux headers !

code :
// définition de nos emails ( j'ai fait un système pour plusieurs )
// note : on aurait pu utiliser des constantes qui se prètent peut être mieux à cette utilisation
$toto = "[email protected]";
$titi = "[email protected]";

// si le visiteur a cliqué sur un lien mail
if ( isset( $_GET['mail'] ) ){

// on récupère le mail grace à une variable dynamique
$adresse = $$_GET['mail'];

// et on envoi le tout avec header
header( 'Location: mailto:' . $adresse );

}
J'ai couplé cela avec une création dynamique d'image contenant le véritable mail, de cette manière on à le véritable mail affiché, et quand on clique dessus ça nous l'envoi directement sur notre client mail.

**Avantages :
- véritable mail absoluement inrécupérable par les robots (du moins tant qu'il ne les recuperent pas dans les images et ne suivent pas les liens jusqu'à dans la messagerie)
- adresse tout de même visible en créant une image via la librairie GD
- pas de javascript

**Inconvéniants :
- impossible de faire un copier coller de l'adresse a partir de la page
- nécessite librairie GD
- accessibilité

par Hywan » 13 févr. 2007, 19:54

Bonsoir,

il me semble qu'on s'est mal compris hein.

En ce qui concerne le spam, je suis très largement atteint. Juste pour ma boîte personnelle, j'en reçois 150 par jours (en moyenne), alors ne pas me faire de discours sur les 100 spams pour le pauvre client ;-)

Ensuite, on cherche une solution "pure" (le terme est mauvais, mais je n'en trouve pas d'autre qui convient mieux à mon idée). Id est qui est faite en PHP, sans ajouter d'autre programme derrière ou par dessus, à l'instar du tien non ?
Car il suffit que pour une raison quelconque, l'utilisateur (du moins, son système) ne puisse pas accepter le programme, et alors, tout est foutu.

On cherche une autre solution, j'espérais que tu le comprennes.

De plus, tu t'es attardé sur mes critiques, sauf sur celle qui m'intéressait le plus, à savoir celle sur les Mac et Mail.
Je navigue très souvent sur Mac, Linux et Win, et je me soucis donc de la portabilité des programmes ; ce qui -- normalement -- ne devrait jamais être à préciser ...

Désolé si je t'ai brusqué, ce n'était pas mon but, mais je reconnais que mon discours a été un peu fort.

Bonne soirée à vous tous :)

Edit et PS : écris plus espacé, ton texte ne respire pas assez :P

par Invité » 13 févr. 2007, 19:25

L'idée est intéressante.

Mais je veux la voir fonctionner sur un Mac avec un Mail par exemple !

Et jamais, au grand jamais, je ne demanderais de faire une chose pareille à mes chers et tendres visiteurs (ou futures hehe). Alors berk pour ta solution, ça ressemble plus à de la publicité (genre recherche google avec antispam comme mot clé) qu'une rélle occupation ou solution ...

Donc je refuse en bloque.
Si c'est pour moi que tu dis ça, c'est dommage... car s'il y bien quelqn'un qui déteste le spam c'est bien moi. Pour le... l'idée est interessant ... tu devrais approndir l'idée complètement avant d'émettre un commentaire et tu va saisir que peu importe ou cette méthode est appliquée, coté serveur ou client elle élimine complètement le SPAM. Le scepticisme ne justifie pas l'ignorance (ce n'est pas une pointe en passant). Ce que je veux dire c'est vérifie complètement avant de parler. Et ma solution comme tu le dis ... est une solution finale en elle-même. C'est la solution de quelqu'un dis... Le SPAM j'en ai marre!!!. Il y a 5 ans, j'ai voulue développer une business sur le net et je recevais plus de 100 SPAM par jour pour un client (côté anglais) par semaine ou par mois. Tu peux imaginer la frustration de ne pas pourvoir utiliser un anti-spam qui m'aurait assuré de me débarasser de cette mer..... et garder mon client. Alors de grâce ne me parle pas ... d'idée interessante... cette solution est tellement efficace qu' aujourd'hui je ris du spam. je suis passé de 100 à 0 pour ma business et pour moi (5-10/jour à 0) avec une parfaite tranquilité d'esprit. Si t'en veux pas ou que tu n'en a pas besoin Good for you... J'en ai parlé simplement comme un informaticien parlerait d'une solution à un problème que d'autres informaticien. De bon coeur et avec la bonne intention d'aider. D'un mon côté, hier un directeur de compagnie me disait qu'après étude cette solution est super, d'autre personne me disent qu'ils ont hâte à la solution pour Outlook etc... Sur ce, je te souhaite le meilleur des succès dans ta recherche.

Précision

par jlvill » 13 févr. 2007, 19:00

Il s'agit d'un système du côté du propriétaire de l'adresse email.

Ici, nous discutons d'un système qui permet, quelque soit l'adresse, de la camoufler au robots.

Je me vois assez mal demander à tous mes membres de passer par pidMail :?
Les membre n'ont pas à passer par PidMail. Tu peux l'installer de ton coté et utiliser pour les membre un formulaire standard avec une PidKey à saisir. Pour les membres c'est complètement transparant. Pour toi, plus de spam et ce même si les apammeurs ont ton adresse.
L'info est donné, la solution t'appartient,
Bonne réflexion,
JL

par Hywan » 12 févr. 2007, 01:09

L'idée est intéressante.

Mais je veux la voir fonctionner sur un Mac avec un Mail par exemple !

Et jamais, au grand jamais, je ne demanderais de faire une chose pareille à mes chers et tendres visiteurs (ou futures hehe). Alors berk pour ta solution, ça ressemble plus à de la publicité (genre recherche google avec antispam comme mot clé) qu'une rélle occupation ou solution ...

Donc je refuse en bloque.