begin process at 2010 02 10 17:14:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > PROTECTION DES ADRESSES MAILS

PROTECTION DES ADRESSES MAILS


 Information sur la source

Note :
7,83 / 10 - par 6 personnes
7,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :email, adresse, robot Niveau :Débutant Date de création :19/06/2006 Date de mise à jour :19/06/2006 18:20:14 Vu :7 513

Auteur : WhiteDwarf

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (32)
Ajouter un commentaire et/ou une note


 Description

Ce code n'en est pas vraiment un, enfin y'a que quelques lignes, c'est plus une technique que j'ai imaginée suite à plusieurs posts conscernant le cryptage d'adresses mail dans les pages pour éviter que les robots les récupèrent. J'ai trouvé cette façon intéressante à vous présenter.

Pour cela on a besoin de seulement deux fichiers et d'un serveur qui accepte le .htaccess

le fichier mail.php et le fichier .htaccess (bien sur ;) )

Avec le fichier .htaccess, nous allons faire de l'url rewritting, c'est à dire de la réécriture d'URL, cela consite en l'appel d'une adresse spécifique sur le serveur, qui sera redirigée vers une autre adresse. Cette nouvelle adresse pouvant contenir des variables dont le contenu proviens du premier lien.
Je sais c'est pas très clair ;) , exemple :

On appelle la page http://www.monsite.com/mail/utilisateur/boitemail. com
Le serveur réécrit l'url en temps que : http://www.monsite.com/mail.php?part1=utilisateur& part2=boitemail.com

Pour plus d'info : http://www.google.fr/search?hl=fr&q=url+rewriting& btnG=Recherche+Google&meta=

(Un petit merci à Anthomicro qui m'a inicié à l'art du .htaccess)

Source

  • // Voila le contenu des deux fichiers :
  • ////////// mail.php /////////////
  • <?php
  • if (isset($_GET['part1'] && $_GET['part2']) {
  • $email = $_GET['part1'] . "@" . $_GET['part2'];
  • $header = "Location: mailto:" . $email;
  • header($header);
  • }
  • echo "<html><body onload='javascript:history.back(-1);'></body></html>";
  • ?>
  • ////////// .htaccess /////////////
  • RewriteEngine On
  • RewriteRule ^mail/([*]+)$/([*]+)$ http://www.monsite.com/mail.php?part1=$1&part2=$2 [L]
// Voila le contenu des deux fichiers :


////////// mail.php /////////////
<?php
if (isset($_GET['part1'] && $_GET['part2']) {
$email = $_GET['part1'] . "@" . $_GET['part2'];
$header = "Location: mailto:" . $email;
header($header);
}
echo "<html><body onload='javascript:history.back(-1);'></body></html>";

?>


////////// .htaccess /////////////
RewriteEngine On
RewriteRule ^mail/([*]+)$/([*]+)$  http://www.monsite.com/mail.php?part1=$1&part2=$2  [L]

 Conclusion

Pour appeler ce type de méthode, il faut faire un lien de ce type :

http://www.monsite.com/mail/utilisateur/boitema il.com

Ce lien représente l'adresse : utilisateur@boitemail.com
Donc pour moi@yahoo.com par exemple c'est :
http://www.monsite.com/mail/moi/yahoo.com

Le fichier .htaccess doit être placé dans le répertoire superieur au répertoire virtuel 'mail'. Par exemple si votre lien est http://www.monsite.com/test/mail/.... placez le fichier dans le répertoire test.

Ensuite le script exectute le mailto et reviens sur la page précédente.

Voila, si vous avez d'autres questions, n'hésitez pas.

@++


 Historique

19 juin 2006 06:23:55 :
J'ai cliqué sur "Soumettre votre source" trop rapidement et j'ai oublié d'expliquer certaines choses ;)
19 juin 2006 18:20:14 :
Rajout du test if ($_GET['part1']....

 Sources du même auteur

Source avec Zip API DE RECHERCHE GOOGLE
TUTORIEL : PHP - JAVASCRIPT - HTML (DÉBUTANT)
Source avec Zip APPLICATION E-COMMERCE

 Sources de la même categorie

Source avec une capture PAGINATION EN PHP par Orangina
Source avec Zip POO - DEBUGGER par DiGhan
Source avec Zip CRAWLER DE SITE EN PHP par Mcjo
DÉCOUPAGE D'UN TEXTE EN FONCTION DES SAUTS DE LIGNES par biloubil
RÉCUPÉRER LE CHEMIN RELATIF D'UN OBJET PAR RAPPORT À LA RACI... par FredPsy

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CLASSE DE MESSAGERIE par janhsh
ANTI SPAM (BROUILLAGE D'ADRESSE MAIL) par coucou747
Source avec Zip CLASS D' ENVOIE DE MAIL EN SMTP par ImmortalPC
TESTER LA VALIDITÉ D'UNE ADRESSE EMAIL SANS ATTENDRE DE RÉPO... par frdtech
Source avec Zip LISTER EMAIL D'UN TEXTE par MATHIS49

Commentaires et avis

Commentaire de Palleas_44 le 19/06/2006 07:29:57

Sympa le code mais euh ca sert à quoi ? ^o)

Commentaire de WhiteDwarf le 19/06/2006 07:45:42

Salut,

En fait il existe des logiciels, que l'on appelle plus communément des robots, qui scannent les pages web à la recherche d'adresses emails, pour pouvoir ensuite les spammer. C'est pour fais face à cela que de plus en plus de sites changent leur méthodes d'affichage des emails. php.net par exemple, on peut y voir sur la plus part des commentaires des adresses type "truc at machin dot com", c'est un moyen utilisé pour que ces robots ne trouvent pas l'adresse.

Ceux ci cherchent dans le html des choses qui ressemble à des adresses mail. Les fonctions mailto sont les premières visées. Donc ce que je propose, c'est un mailto, mais via un lien spécifique de redirection. Donc l'adresse mail n'est pas marquée explicitement dans le code.

Commentaire de xque19 le 19/06/2006 10:27:33

Salut,

C'est très bien vu, le code est très clair et je trouve l'utilisation des .htaccess très astucieuse!! Bravo.

10/10 ^_^

Commentaire de JoJo738 le 19/06/2006 10:49:40

Salut ^^

pas mal :D Tu pourrais juste tester l'existance des deux $_GET

10/10

Commentaire de kankrelune le 19/06/2006 15:14:48

Je suis septique... les bots reçoivent les en têtes http et savent lire... ton header renvoi un en tête http avec un mailto... il est probable que les robots puissent le lire... mais je n'en suis pas sûr loin de là... à tester... le mieux étant quand même de ne pas mettre de mailto.. .

@ tchaOo°

Commentaire de malalam le 19/06/2006 15:56:04 administrateur CS

Hello,

j'ai tendance à penser comme Kankrelune.
Il est très facile de lire les en têtes http envoyés. Donc à priori, de lire l'adresse dans le mailto.
Mais faudrait tester...en fait.
Ceci dit, il y a de l'idée.
Sauf que onload est déprécié, hein.

Commentaire de coucou747 le 19/06/2006 16:12:48

franchement, je serais très étonné que ça trompe les robots, les méthodes qui passent par des images sont les plus fiables, ensuite, les codes javascripts, css ou mises en forme (j'ai choisi celle là personellement : c'est la moins couteuse en ressources parmi celles qui sont efficaces), et ensuite, bah mettre l'adresse en clair, comme tu le fais...

Commentaire de WhiteDwarf le 19/06/2006 18:47:11

arpès, en htaccess, j'ai vu un totu sur le moyen de bloquer l'accès à certaines pages pour les robots, je vais asseyer de vous retrouver ca :)

Commentaire de WhiteDwarf le 19/06/2006 18:48:29

malalam ==> "le onload est déprécié" ==> c'est pas aux normes ?

Commentaire de WhiteDwarf le 19/06/2006 18:58:07

Voici un site qui explique vite fais comment interdire les robots, http://www.toulouse-renaissance.net/c_outils/c_interdire_aspirateurs.htm
mais je sais que j'en avais trouvé un mieux.. si je le retrouve je le reposte ici.

Voici une liste de robots à interdire :
http://www.yooda.com/info/article/robots_txt/robots_interdits.php

Commentaire de WhiteDwarf le 19/06/2006 19:05:26

*A la limite du flood ;) * : J'ai retrouvé une des pages que j'avais consulté et que j'ai trouvé pertinente, encore une fois sur les robots :
http://www.leekillough.com/robots.html

Commentaire de kankrelune le 20/06/2006 13:32:56

C'est bien de bloquer les bots avec une liste mais encore faut il que ce(s) dernier(s) soient dans la liste... la liste donnée contient principalement des aspirateurs de site et non pas des aspirateurs d'adresses mail... qui plus est en admettant que la liste contienne tous les bots la protection de l'adresse mail devient accessoire puisque le bot n'est pas censé arriver jusqu'a elle... .. .

De toute façon la protection de ce genre de technique est assez relative la plupart des bots envoyant comme signature celle d'un navigateur internet normal... .. .

une alternative est de bannir les élément qui visitent/ouvrent plus de tant de page par minute ou par seconde... .. .

@ tchaOo°

Commentaire de twisteurwin le 20/06/2006 17:44:26


lut,
tu peux remplacer :
echo "<html><body onload='javascript:history.back(-1);'></body></html>";
par
echo '<html><body onload='javascript:history.back(-1);'></body></html>';

Une suggestion peut etre un peu bête ^^
Tu peux passer tes emails en md5 ou en sha du genre :

- http://www.monsite.com/mail/md5(utilisateur)/md5(monsite.com)
la les robots peuvent se toucher après...

+++  

Commentaire de twisteurwin le 20/06/2006 17:45:27

oups petite faute je rectifie
par
echo '<html><body onload=\'javascript:history.back(-1);\'></body></html>';

Commentaire de malalam le 20/06/2006 18:01:53 administrateur CS

quitte à corriger ça :
echo '<html><body onload="javascript:history.back(-1);"></body></html>';

c'est plus juste.

Commentaire de kankrelune le 20/06/2006 18:35:53

et si on utilise Mozilla ou Netscape et que l'on ou vre le lien dans un nouvel onglet... et pour ceux dont le javascript est désactivé... .. .

Autant utiliser $_SERVER['HTTP_REFERER'] ou passer un troisième paramètre dans l'url contenant la page de provenance puis faire une redirection... .. .

<script type="text/javascript" language="javascript">
     var refresh = setTimeout("window.location.href='ta_page.ext';",0000);
</script>
<noscript>
     <meta http-equiv="refresh" content="0;url=ta_page.ext">
</noscript>

@ tchaOo°

Commentaire de coucou747 le 20/06/2006 19:40:14

tu peux passer une adresse en md5, mais tu le récupères comment ensuite ? et le but là, c'était pas ça... enfin bref, c'est pas super comme source, et ça ne protège rien...

Commentaire de WhiteDwarf le 21/06/2006 03:14:50

Kankrelune > je ne pense pas qu'il soit nécéssaire d'envoyer une variable page. En effet, si l'uilisateur à mozilla et l'ouvre dans un nouvel onglet, il garde l'ancien encore ouvert.

Ou alors il faudrait faire une fonction javascript, qui détecte si c'est un nouvel onglet ou non, et si c'en est un, alors il le ferme.

Idée à travailler... ^^

Commentaire de audayls le 23/06/2006 00:20:15

Bonsoir,
Le mieux (pour moi personnellement) c'est de creer un formulaire pour envoyer un e-mail (proteger par un anti-flood). Il suffit d'adresser l'E-Mail à celui que le visiteur souhaite contacter.
Comme çà ni un visiteur ni un robot ne connaissent l'adresse E-Mail.

Commentaire de pastis51forever le 23/06/2006 11:35:30

Perso, je pense que quitte à insérer du javascript, autant ne pas charger le mail du tout, et de ne le faire que quand c'est explicitement demandé en cliquant sur "voir le mail", ou "écrire"... Là, avec un peu de "ajax", tu récupères l'adresse et tu l'affiches dans le span ou div prévu à cet effet.

Commentaire de coucou747 le 23/06/2006 12:49:20

en tout cas, désolé de dire ça, mais 7.75 pour une source qui ne protège rien du tout... c'est décourageant pour ceux qui ont des sources à 6 et qui ont passé beaucoup de temps dessus pour faire un truc qui marche...

Commentaire de Palleas_44 le 23/06/2006 13:41:51

Je suis d'accord, moi j'ai mis 4 :$
Désolé d'ailleur mais ok tu y a sans doute passé du temps mais l'interet est proche de 0, sorry :)

Commentaire de WhiteDwarf le 24/06/2006 18:44:56

"Désolé d'ailleur mais ok tu y a sans doute passé du temps mais l'interet est proche de 0, sorry :)" ==> Bah t'aurais du mettre 1 alors ^^ et pas 4...

Ouais je me rend bien compte que cette méthode n'est pas forcément bonne, vous avez ouverts des voies auquelles je n'avais pas pensé. L'envoi par formulaire, j'oublie tout de suite, car je ne veux pas que mes serveurs envoient trop d'email. J'ai déja des problèmes de spam à cause des extracteurs d'emails MSN, Gmail, Yahoo...

D'ailleur, quelqu'un saurais comment faire pour ne pas être spammeur, car les messages envoyés au travers de mon site ne sont pas des messages de spam, ce sont des personnes qui préviennent leurs amis de l'existence du site.. Et on est concidéré comme spammeur..

Je ne sais plus trop dans quel sens aller...

Commentaire de WhiteDwarf le 24/06/2006 18:48:06

pastis51forever ==> j'aime beaucoup ton idée, je pense que je vais faire ca... Je vais updater ce code pour qu'il soit un peu plus à la hauteur de sa note ^^ et l'ajax est une bonne solution... mise à jour prochaine ;)

Commentaire de kankrelune le 25/06/2006 16:52:07

[quote]D'ailleur, quelqu'un saurais comment faire pour ne pas être spammeur, car les messages envoyés au travers de mon site ne sont pas des messages de spam, ce sont des personnes qui préviennent leurs amis de l'existence du site.. Et on est concidéré comme spammeur..[/quote]

Bien définir les headers du mail... .. .

@ tchaOo°

Commentaire de Ricou13 le 26/06/2006 21:59:18

Salut,
Pour faire un semblant de protection j'utilise une fonction PHP qui "crypte" simplement l'adresse mail (stockée en base de donnée) et qui affiche dans la source quelque chose comme ceci :
<script type="text/javascript">AfficherMel("m6oècD.èlAe9iEr|e{tha0myiAfVer§ItHcda%tNnyoUc;", "Contact");</script>
Et une fonction Javascript qui décrypte et ajoute le mailto.
Cela me parait suffisant puisque les robots ne voient que le code ci-dessus, non ?

Commentaire de WhiteDwarf le 26/06/2006 22:13:42

Ricou13 >> effectivement tu a raison ^^ les robots n'interpètent pas encore le javascript

kankrelune >> j'ai bien essayé de bien définir les headers, je définis l'adresse d'envoie en tant que celle de la personne qui envoie via notre serveur, j'ai défini le contenu type text/html, les character set et le dommaine. As tu un conseil sur ce que je pourrais y rajouter ?

Commentaire de kankrelune le 27/06/2006 15:47:43

Le tuto sur le site d'antho est pas mal fait... .. .

http://www.vulgarisation-informatique.com/mail.php

@ tchaOo°

Commentaire de bayosky le 27/06/2006 17:35:37

Salut,

De nombreuses ruses sont proposées sur de nombreux sites pour limiter les risques de Spam... Masquer les adresses sur le web est une des armes ( mais on ne peut pas vérifier que les carnets d'adresses de nos contacts sont correctement protégés...)
S'agissant des pages web, la méthode de loin la plus sûre parmi celles qui tournent chez la plupart des FAI est de tout faire en php avec un formulaire et c'est le script qui poste lui même. Ainsi, l'adresse du destinataire ne se promène nulle part. On peut même coder (md5) l'adresse du correspondant qui arrive par $_POST si on la lui demande pour garantir aussi sa sécurité. (Etre prudent pour soi c'est une chose mais il faut un peu penser aux autres...)  De plus, on peut alors insérer du texte au début du champs Objet pour préciser l'origine du message (quelle page). Ainsi avec une classe mail (on en trouve partout) et une page contact.php on peut recevoir des messages et savoir sur quelle page se trouvait le correspondant ... les liens étant du type "contact.php?p=178"...

HB

Commentaire de kankrelune le 27/06/2006 18:14:10

@ bayosky... tout ça on le sait... mais des fois on doit/veut afficher l'adresse (ex forum pour les membres) dans ce cas il faut bien trouver une solution... .. .

[quote]On peut même coder (md5) l'adresse du correspondant qui arrive par $_POST[/quote]

Si tu hash ton adresse en md5 tu vas avoir du mal pour envoyer le mail... lol... .. . ;o)

@ tchaOo°

Commentaire de bayosky le 27/06/2006 18:53:58

Certes,

Si l'adresse doit être affichée localement, il faut la reconstituer localement, en javascript ... On peut toujours avoir un moulinette bien vicieuse qui utilise la fonction eval pour limiter les risques... Ceci étant, j'ai constaté que certains aspirateurs analysent le javascript pour y rechercher des liens et je ne serais pas étonné d'apprendre que les robots actuels sont capables d'exécuter les scripts contenus dans une page pour l'analyser à fond... et même si ce n'est pas parfait, ils progresseront ...

En ce qui concerne le hash, c'est celle que le corrrespondant donne dans le formulaire que l'on peut tranférer codée... Beaucoup de site sérieux le font :o)

Commentaire de kankrelune le 27/06/2006 19:43:31

Oui mais surement pas avec md5... .. . ;o)

@ tchaOo°

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Envoie d'EMAIL [ par lard ] Bonjour,Je débute en PHP (donc pardonnez mon ignorence...) Voici ma demande:Sur une page WEB, je voudrais que les utilisateurs puissent entrez leurs a Problème avec fputs() [ par coton rough ] Voil&#224; j'ai une erreur de syntaxe apparemment qui me renvoit Parse error: parse error, unexpected T_STRING in /home2/c/cani-cross/www/communs/en PB de Reception d'Email Forumlaire PHP [ par kiarah ] bonjour les gens ^^Je rencontre un probleme vraiment curieux avec mon formulaire . : j'envoie des variables via un formulaire HTML (con EMail [ par BSide ] Bonjour,je construis dynamiquement en PHP un tableau avec des données provenant d'une base Mysql.Parmi ces données se trouve un champ concernant l'ema récupérer automatiquement un adresse email dans un formulaire envoyé en php3 [ par motosbikes ] Bonjour, quelqu'un pourrait il me dire comment faire pour récupérer automatiquement l'adresse email d'une personne qui valide un formulaire envoyé sur Création d'adresse email via php [ par levampiremarius ] Bonjour, Je cherche le moyen pour pouvoir cr&#233;er un adresse email sur mon nom de domaine (sachant que je peux en faire autant que je veux). Mais envoye de formulaire [ par thrmgs ] slt a tousvoila je cherche a envoye un simple formulaire a mon adresse email avec pour champ : "email :" et "adresse de site" .j ai essaye de reprendr formulaire aide please [ par sk8ter57 ] alors voial je debute en php j'aimerai creer un formulaire ou une fois ke la personne a tout rempli sa envoi vers une adresse email voici la page html e-mail [ par vinise ] Bonjour a tous.voila jai un hebergement qui me permet de creer des adresse email ilimité.et jaimerai que a chaque fois que quelqu'un s'enregistre sur Récupération d'une partie d'adresse email ? [ par Joez ] je veux recupérer ce k'il y a avant l'@ dans une adresse email, en php, comment faire ?


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales