Cryptage d'une adresse mail

darkjukka
WRInaute impliqué
WRInaute impliqué
 
Messages: 669
Inscription: 28 Avr 2007

Cryptage d'une adresse mail

Message le Dim Juin 17, 2007 17:42

Bonjour à tous

J'ai trouvé dernièrement un bout de code PHP me permettant de crypter une adresse e-mail dans le code source mais qu'elle apparaisse en clair sur le site et que le lien soit un mailto classique quand on clique dessus.

Seulement je me suis rendu compte que cela ne marchais qu'avec Firefox, ni IE, ni Opera ne veulent m'afficher l'adresse sur la page alors qu'elle apparait bien cryptée dans le code source avec ces navigateurs.

J'aimerai donc comprendre pourquoi cela ne marche pas avec ces navigateurs ?

Voila le code :
Code: Tout sélectionner
<?php
function  email ($email ) {
if(eregi ('([^?]+)([?].*)', $email,$temp)){
$email=$temp [1]; $tout=AddSlashes ($temp[ 2]);}
$email =preg_replace( '|@|',"'+'@'+'" ,$email);
$email="var e='$email';" ;if($tout){ $email.="var f='$tout';" ;}
$email.= "document.write('<a href=\"mailto:'+e";
if( $tout){$email .="+f";}
$email.= "+'\" title=\"'+e+'\">'+e+'</a>')";
$email=chunk_split (bin2hex($email ),2, '%');
$email ='%'. substr($email ,0, strlen($email )-1);
$email=chunk_split ($email, 54,"'+\n'" );
$email= substr($email ,0, strlen($email )-4);
$email= "<script type=\"text/javascript \" language=\" javascript\"> \n<!--
eval(unescape( \n'$email')); //-->\n </script>"; echo  $email; }
?>


et celui qui fait apparaitre l'adresse
Code: Tout sélectionner
<?email( "monmail@monsite.com")?>


En cherchant je suis tombé sur cette page mais je n'arrive pas à faire fonctionner le cryptage donné, quel est le code php pour faire apparaitre à l'endroit voulu l'adresse email ?
http://www.webrankinfo.com/forums/viewtopic_57007.htm

Merci de vos réponses


polweb
WRInaute accro
WRInaute accro
 
Messages: 3903
Inscription: 18 Oct 2006

Message le Dim Juin 17, 2007 17:45

Tu peux aussi regarder le site aspirine il y a un script en javascript.

rebouloup
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 8 Juin 2004

Message le Dim Juin 17, 2007 18:13

Ton script n'est pas top !

L'idée est de cacher le @ pour ne pas l'avoir en clair => le top est une image du @ (un gif ou un jpeg)

puis de recomposer avec une fonction javascript les 2 parties du mail


function mail (base,domaine)
{
document.location="mailto://"+base+"@"+domaine;
}

le lien :

<a href="javascript:mail("bob","test.com");">bob<img src="monArobaze.gif">test.com</a>

et le tour est joué !

Bon visitez le site
http://www.debat-politique.com/election ... html#carte

pour profiter de la carte interactive des resultats des legislatives tout fraichement développé!

rebouloup
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 8 Juin 2004

Message le Dim Juin 17, 2007 18:15

Tu peux aussi remplacer l'image du arobaz @ par les caractères "AT" !!!!!

c'est pas forcément compréhensible par les internautes mais ça peut aussi être une solution à court terme

darkjukka
WRInaute impliqué
WRInaute impliqué
 
Messages: 669
Inscription: 28 Avr 2007

Message le Lun Juin 18, 2007 19:23

J'ai finalement trouvé un nouveau code en php qui fonctionne avec les 3 navigateurs cité donc je pense qu'il n'y aurait aucun soucis pour les autres que je n'ai pas testé.

Un code bien plus court et tout aussi puissant car en testant ma page sur le site d'aspirine il ne me trouve pas d'adresse mail alors que le lien est bel et bien un mailto donc tout roule!

rebouloup
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 8 Juin 2004

Message le Lun Juin 18, 2007 19:37

N'hesites pas à nous montrer ton bout de code ou nous donner le lien ... on veut tout savoir !

darkjukka
WRInaute impliqué
WRInaute impliqué
 
Messages: 669
Inscription: 28 Avr 2007

Message le Lun Juin 18, 2007 21:43

Code: Tout sélectionner
<?php
function hex_encode ($str)
{
$encoded = bin2hex($str);
$encoded = chunk_split($encoded, 2, '%');
$encoded = '%'.substr($encoded, 0, strlen($encoded) - 1);
return $encoded;
}
?>

En haut de page et

Code: Tout sélectionner
<a href="mailto:<?php echo hex_encode("monmail@monsite.com"); ?>">Contact</a>

pour faire apparaitre le mailto

Un simple encodage hexadécimale

rebouloup
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 8 Juin 2004

Message le Lun Juin 18, 2007 22:32

Merci bien, je n'y aurai jamais pensé ... je teste dès demain.
Ca a le mérite d'éviter le javascript !


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3884
Inscription: 16 Nov 2004

Message le Mar Juin 19, 2007 7:48

darkjukka a écrit:
Code: Tout sélectionner
<?php
function hex_encode ($str)
{
$encoded = bin2hex($str);
$encoded = chunk_split($encoded, 2, '%');
$encoded = '%'.substr($encoded, 0, strlen($encoded) - 1);
return $encoded;
}
?>

En haut de page et

Code: Tout sélectionner
<a href="mailto:<?php echo hex_encode("monmail@monsite.com"); ?>">Contact</a>

pour faire apparaitre le mailto

Un simple encodage hexadécimale


Pas de solution miracle, n'importe quel hackeur te ratatine ton code. La seule solution valable est de se charger de l'envoie à travers une page du site.

rebouloup
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 8 Juin 2004

Message le Mar Juin 19, 2007 9:15

Pour preciser Koogar,

C'est la mise à disposition d'un formulaire, traitement puis envoi avec la fonction php "mail(...)"


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3884
Inscription: 16 Nov 2004

Message le Mar Juin 19, 2007 10:58

pas compris alors, l'adresse n'apparait que dans la commande mail(), ca sert a quoi de crypter cette adresse ?

darkjukka
WRInaute impliqué
WRInaute impliqué
 
Messages: 669
Inscription: 28 Avr 2007

Message le Mar Juin 19, 2007 11:37

Non non, ce n'est pas dans un formulaire. Dans mes formulaires l'adresse n'est absolument pas visible coté client.

J'utilise mon adresse mail avec un mailto mais aussi un formulaire de contact, cela laisse le choix libre à l'internaute.

Je ne le fais pas pour cacher mon mail à tout le monde mais belle et bien pour empêcher qu'elle soit relevée par un robot spam.

Dan_A
WRInaute discret
WRInaute discret
 
Messages: 183
Inscription: 21 Déc 2005

Message le Mar Juin 19, 2007 20:32

Le problème c'est que n'importe quel spambot sait lire cette adresse encodée.

darkjukka
WRInaute impliqué
WRInaute impliqué
 
Messages: 669
Inscription: 28 Avr 2007

Message le Mer Juin 20, 2007 15:28

Ben a priori la page de chez aspirine.org qui simule un robot spam n'arrive pas à la décrypter pourtant elle en a trouvé pas mal (d'autres encodages javascript testés) donc bon.


itsme
WRInaute impliqué
WRInaute impliqué
 
Messages: 744
Inscription: 13 Oct 2004

Message le Mer Juin 20, 2007 15:37

KOogar a écrit:Pas de solution miracle, n'importe quel hackeur te ratatine ton code. La seule solution valable est de se charger de l'envoie à travers une page du site.

Ce n'est pas les hackeurs qui utilisent les mails glanes ici et la sur les pages :)

Sinon, tu as raison a condition d'avoir un formulaire de soumission blindé, sinon c'est le site qui devient un spammeur ;)

Cryptage d'une adresse mail

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités