Méthode efficace pour masquer les e-mails à partir de robots de spam

Sur ma page d’accueil, j’utilise cette méthode pour masquer mes e-mails contre les robots de spam:

Contact me 

Qu’est-ce que tu en penses? Est-ce efficace? Quelles autres méthodes connaissez-vous ou utilisez-vous?

C’est la méthode que j’ai utilisée, avec un include côté serveur, par exemple emailObfuscator.include contient les éléments suivants:

   

Pour inclure une adresse, j’utilise JavaScript:

   

Depuis que je reçois des e-mails via Gmail depuis 2005, le spam est pratiquement un problème. Donc, je ne peux pas parler de l’efficacité de cette méthode. Vous pourriez vouloir lire cette étude (même si elle est ancienne) qui a produit ce graphique:

entrer la description de l'image ici

Jetez un oeil à cette façon , assez intelligent et en utilisant css.

CSS

 span.reverse { unicode-bidi: bidi-override; direction: rtl; } 

HTML

 moc.rehtrebttam@retsambew 

Le CSS ci-dessus remplacera alors le sens de lecture et présentera le texte à l’utilisateur dans le bon ordre.

J’espère que cela aide

À votre santé

Travailler avec du contenu et attr dans CSS:

 .cryptedmail:after { content: attr(data-name) "@" attr(data-domain) "." attr(data-tld); } 
  

J’ai un sharepoint vue complètement différent. J’utilise MailHide pour cela.

MailHide est un système de Google par lequel l’utilisateur doit effectuer un test reCAPTCHA pour lui révéler le courrier électronique.

Pas mon idée à l’origine mais je ne trouve pas l’auteur:

 link 

Ajoutez autant de x que vous voulez. Il fonctionne parfaitement pour lire, copier et coller, et ne peut pas être lu par un bot.

Je pense que la seule méthode infaillible que vous pouvez avoir est de créer une page Contact Me qui est un formulaire qui est soumis à un script qui envoie à votre adresse e-mail. De cette façon, votre adresse n’est jamais exposée au public. Cela peut être indésirable pour une raison quelconque, mais je pense que c’est une très bonne solution. Cela me contrarie souvent lorsque je suis obligé de copier / coller l’adresse e-mail de quelqu’un depuis son site vers mon client de messagerie et de lui envoyer un message. Je préfère le faire directement sur un formulaire sur leur site. En outre, cette approche vous permet de recevoir des commentaires anonymes, etc. Assurez-vous simplement de protéger votre formulaire en utilisant un schéma anti-bot, tel qu’un captcha. Il y en a beaucoup discutés ici sur SO.

Voir Rendre les adresses e-mail à l’abri des robots sur une page Web?

J’aime la façon dont Facebook et les autres rendent une image de votre adresse e-mail.

J’ai également utilisé The Enkoder dans le passé – j’ai trouvé ça très bien d’être honnête!

Si vous avez le support php, vous pouvez faire quelque chose comme ceci:

  

Et le https://stackoverflow.com/questions/483212/effective-method-to-hide-email-from-spam-bots/scriptname.php:

  

Je sais que ma réponse ne sera pas appréciée par beaucoup mais veuillez considérer les points soulignés ici avant de vous arrêter.

Tout ce qui est facilement lisible à la machine sera facilement lisible par la machine par les spammeurs. Même si leurs actions nous semblent stupides, ce ne sont pas des gens stupides. Ils sont innovants et ingénieux. Ils ne se contentent pas d’utiliser des robots pour collecter les e-mails, ils disposent d’une multitude de méthodes et, en plus, ils paient de bonnes listes de nouveaux e-mails. Ce que cela signifie, c’est qu’ils ont obtenu des milliers de pirates informatiques dans le monde entier pour qu’ils exécutent leurs tâches. Les personnes prêtes à coder les logiciels malveillants qui récupèrent les écrans des navigateurs d’autres personnes, ce qui rend éventuellement toute méthode inutile. Ce sujet a déjà été lu par plus de 10 personnes et ils se moquent de nous. Certains d’entre eux peuvent même s’ennuyer à découvrir que nous ne pouvons pas leur proposer un nouveau défi.

Gardez à l’esprit que vous n’essayez pas de sauver votre temps, mais le temps des autres. Pour cette raison, veuillez envisager de passer du temps supplémentaire ici. Il n’y a pas de solution miracle facile à exécuter. Si vous travaillez dans une entreprise qui publie des messages électroniques de 100 personnes sur le site et que vous pouvez réduire 1 courrier indésirable par jour et par personne, nous parlons de 36500 courriers indésirables par an. Si la suppression d’un tel courrier prend 5 secondes en moyenne, nous parlons d’environ 50 heures de travail par an. Sans parler de la diminution de la gêne. Alors, pourquoi ne pas y passer quelques heures?

Ce ne sont pas seulement vous et les personnes qui reçoivent le courrier électronique qui considèrent le temps comme un atout. Par conséquent, vous devez trouver un moyen de masquer les adresses de messagerie de manière à ce qu’elles ne soient pas rentables. Si vous utilisez une méthode largement utilisée pour masquer les e-mails, il est vraiment rentable de la déchiffrer. En conséquence, le pirate mettra la main sur des milliers, voire des dizaines ou des centaines de milliers de nouveaux courriels. Et pour eux, ils vont avoir de l’argent.

Alors, allez-y et codez votre propre méthode. C’est un cas rare où la réinvention de la roue est vraiment payante. Utilisez une méthode qui n’est pas lisible par ordinateur et qui nécessitera de préférence une interaction de l’utilisateur sans sacrifier l’expérience utilisateur.

J’ai passé environ 20 minutes à coder un exemple de ce que je veux dire. Dans l’exemple, j’ai utilisé KnockoutJS simplement parce que je l’aime bien et je sais que vous ne l’utiliserez probablement pas vous-même. Mais c’est sans importance de toute façon. C’est une solution personnalisée qui n’est pas largement utilisée. Cracking ne sera pas une récompense pour le faire, car la méthode ne fonctionnerait que sur une seule page dans le vaste Internet.

Voici le violon: http://jsfiddle.net/hzaw6/

Le code ci-dessous n’est pas destiné à être un exemple de bon code. Mais juste un échantillon rapide de code qui est très difficile pour la machine à comprendre, nous traitons même les e-mails ici. Et même si cela pouvait être fait, ça ne payera pas d’exécuter à grande échelle.

Et oui, je sais que ça ne marche pas sur IE = lte8 à cause de ‘Impossible d’obtenir des atsortingbuts de référence non définis ou de référence null’ mais je ne m’en soucie tout simplement pas parce que c’est juste une démonstration de méthode et non destiné à être utilisé en production tel quel. N’hésitez pas à coder votre propre qui est plus cool, techniquement plus solide, etc.

Oh, et jamais jamais nommer quelque chose mail ou email en HTML ou javascript. Il est juste trop facile de gratter le DOM et l’object window pour tout ce qui est nommé mail ou email et de vérifier s’il contient quelque chose qui correspond à un e-mail. C’est pourquoi vous ne voulez aucune variable contenant un message électronique dans sa forme complète et c’est pourquoi vous souhaitez que l’utilisateur interagisse avec la page avant d’affecter de telles variables. Si votre modèle d’object javascript contient des adresses de messagerie à l’état prêt pour DOM, vous les exposez aux spammeurs.

Le HTML:

 

Le JS

 function ViewModel(){ var self = this; self.contacts = ko.observableArray([ { firstName:'John', mPrefix: 'john.doe', domain: 'domain.com', lastName: 'Doe', department: 'Sales', phone: '+358 12 345 6789' }, { firstName:'Joe', mPrefix: 'joe.w', domain: 'wonder.com', lastName: 'Wonder', department: 'Time wasting', phone: '+358 98 765 4321' }, { firstName:'Mike', mPrefix: 'yo', domain: 'rappin.com', lastName: 'Rophone', department: 'Audio', phone: '+358 11 222 3333' } ]); self.msgMeToThis = ko.observable(''); self.reveal = function(m, e){ var name = e.target.atsortingbutes.href.value; name = name.replace('#', ''); self.msgMeToThis(name); }; } var viewModel = new ViewModel(); ko.applyBindings(viewModel); 

Vous pouvez essayer de cacher des caractères en utilisant des entités HTML dans hexa (ex: & # x40 pour @). C’est une solution pratique, car un navigateur correct le traduira et vous pouvez avoir un lien normal. L’inconvénient est qu’un bot peut le traduire théoriquement, mais c’est un peu inhabituel. Je l’utilise pour protéger mon courrier électronique sur mon blog.

Une autre solution consiste à utiliser javascript pour assembler une partie de l’adresse et décoder à la volée l’adresse. L’inconvénient est qu’un navigateur désactivé par javascript n’affiche pas votre adresse.

La solution la plus efficace consiste à utiliser une image , mais il est difficile pour l’utilisateur de copier l’adresse à la main.

Votre solution est plutôt bonne , car vous n’ajoutez qu’un inconvénient (en écrivant manuellement les @) uniquement pour les utilisateurs pour lesquels javascript est désactivé. Vous pouvez également être plus sécurisé avec:

 onclick="this.href='mailto:' + 'admin' + '@' + 'domain.com'" 

Une de mes méthodes préférées consiste à masquer l’adresse e-mail avec php, un exemple classique est de convertir les caractères en valeurs HEX comme suit:

 function myobfiscate($emailaddress){ $email= $emailaddress; $length = strlen($email); for ($i = 0; $i < $length; $i++){ $obfuscatedEmail .= "&#" . ord($email[$i]).";"; } echo $obfuscatedEmail; } 

Et puis, dans mon balisage, je l'appellerai simplement comme suit:

  

Ensuite, examinez votre source, vous serez agréablement surpris!

J’utilise une combinaison très simple de CSS et jQuery qui affiche correctement l’adresse e-mail pour l’utilisateur et fonctionne également lorsque l’utilisateur clique ou survole l’ancre:

HTML:

 moc.elpmaxe@em 

CSS:

 #lnkMail { unicode-bidi: bidi-override; direction: rtl; } 

jQuery:

 $('#lnkMail').hover(function(){ // here you can use whatever replace you want var newHref = $(this).attr('href').replace('spam', 'com'); $(this).attr('href', newHref); }); 

Voici un exemple de travail.

! – En ajoutant ceci à titre de référence, vous ne savez pas à quel point les informations peuvent être obsolètes, mais vous y trouverez quelques solutions simples qui ne nécessitent l’utilisation d’aucun script.

Après avoir cherché ceci moi-même je suis tombé sur cette page mais aussi ces pages:

http://nadeausoftware.com/articles/2007/05/stop_spammer_email_harvesters_obfuscating_email_addresses

essayez d’inverser l’adresse email

Exemple HTML simple:

 moc.elpmaxe@nosrep Result : [email protected] 

Le même effet en utilisant CSS

 CSS: .reverse { unicode-bidi:bidi-override; direction:rtl; } HTML: moc.elpmaxe@nosrep Result : [email protected] 

Combiner cela avec l’une des méthodes mentionnées précédemment peut même le rendre plus efficace.

Une solution simple consiste à utiliser des entités HTML au lieu de caractères réels. Par exemple, le “[email protected]” sera converti en:

 email me 

La meilleure méthode pour masquer les adresses e-mail n’est utile que si le programmeur du bot découvre cet “encodage” et implémente un algorithme de décryptage.

L’option JavaScript ne fonctionnera pas longtemps, car il y a beaucoup d’interprétation de JavaScript sur le moteur d’exploration.

Il n’y a pas de réponse, à mon humble avis.

Il y a probablement des robots qui reconnaissent le [at] et d’autres déguisements sous forme de symbole @ . Donc, ce n’est pas une méthode vraiment efficace.

Bien sûr, vous pouvez utiliser des encodages tels que des URL encodés ou des références de caractères HTML (ou les deux):

 // PHP example // encodes every character using URL encoding (%hh) function foo($str) { $retVal = ''; $length = strlen($str); for ($i=0; $i<$length; $i++) $retVal.=sprintf('%%%X', ord($str[$i])); return $retVal; } // encodes every character into HTML character references (&#xhh;) function bar($str) { $retVal = ''; $length = strlen($str); for ($i=0; $i<$length; $i++) $retVal.=sprintf('&#x%X;', ord($str[$i])); return $retVal; } $email = '[email protected]'; echo 'mail me'; // output // mail me 

Mais comme il est légal de les utiliser, chaque navigateur / client de messagerie électronique doit également gérer ces encodages.

Je suis un fan de SpamSpan – il est obscurci, mais toujours déchiffrable si JS est désactivé. Cela semble fonctionner aussi, bien que je ne l’utilise que depuis environ un an sur un site à faible trafic.

Il existe également un module permettant à Drupal de transformer automatiquement les emails en SpamSpans, si vous en avez besoin.

Voici ma version de travail:


Créez quelque part un conteneur avec un texte de secours:

 
Activate JavaScript, please.

Et ajoutez au bas du DOM (avec le rendu) l’extrait suivant:

  

Il ajoute l’hyperlien généré au conteneur spécifié:

  

En outre, voici une version minifiée:

  

Les Spambots ne vont pas l’interpréter, car c’est une méthode moins connue 🙂

Tout d’abord, définissez le css:

 email:before { content: "admin"; } email:after { content: "@example.com"; } 

Maintenant, où que vous souhaitiez afficher votre courrier électronique, insérez simplement le code HTML suivant:

 

Et tada!

Est-ce que ça marche si je clique avec le bouton droit sur le lien et que je choisis “copier l’URL”? Sinon, ce n’est pas une situation idéale (je clique très rarement sur un lien mailto, préférant copier l’adresse électronique et la coller dans mon application de messagerie ou ailleurs où j’en ai besoin à un moment donné).

J’avais l’habitude d’être assez paranoïaque pour protéger mon adresse de messagerie en ligne (UseNet, web et autres), mais je soupçonne aujourd’hui que davantage de “cibles possibles pour le spam” sont générées en faisant correspondre les parties locales aux domaines par programmation. Je me base sur avoir, à l’occasion, parcouru les journaux de mon serveur de messagerie. Il y a eu pas mal de tentatives de livraison vers des adresses non existantes (y compris des versions tronquées de spam-appâts que j’ai balancé sur UseNet à la fin des années 90, lorsque le grattage d’adresses était très répandu).

Après avoir utilisé tant de techniques, j’ai trouvé un moyen facile et très convivial, les robots recherchent @ Símbolo et récemment ils recherchent [at] ant c’est une variation, donc j’utilise 2 techniques

  1. j’écris mon email sur une image comme l’utilisation des domaintolls et cela fonctionne parfaitement ou
  2. pour remplacer le Símbolo (@) par une image similaire

@ remplacer et l’image alt sera alt = “@” afin que le bot trouve une image et que tout humain le verra comme une adresse normale. Par conséquent, s’il le copie, il copiera l’e-mail et le travail sera effectué.

 

myname@domain.com

Il existe un script PHP de licence ouverte qui affiche javascript qui code le courrier: http://www.maurits.vdschee.nl/php_hide_email/ . Vous pouvez alors facilement appeler la fonction php avec le courrier spécifique comme argument.

Tout d’abord, je m’assurerais que l’adresse e-mail ne s’affiche que lorsque JavaScript est activé. De cette façon, il n’y a pas de texte brut pouvant être lu sans JavaScript.

Deuxièmement, une façon de mettre en œuvre une fonctionnalité sûre consiste à restr à l’écart de la . Cette balise nécessite un insert de texte entre les balises, ce qui la rend lisible par ordinateur. Essayez plutôt le avec un gestionnaire javascript pour un onClick. Utilisez ensuite toutes les techniques mentionnées par les autres pour implémenter une notation électronique sécurisée.

Une autre option est d’avoir un bouton avec “Cliquez pour voir l’adresse email”. Une fois cliqué, ceci devient un email codé (les caractères dans les codes HTML). Sur un autre clic, redirige vers la fonction ‘mailto: email’

Une version non codée de la dernière idée, avec des adresses e-mail sélectionnables et non sélectionnables:

         

Voyez si c’est quelque chose que vous voudriez et combinez-le avec les idées des autres. Vous ne pouvez jamais être trop sûr.

Et ma fonction Je l’ai créé en regardant les réponses à ce sujet.

  function antiboteEmail($email) { $html = ''; $email = strrev($email); $randId = rand(1, 500); $html .= '[turn javascript on to see the e-mail]'; $html .= << $(document).ready(function(){ var addr = "$email"; addr = addr.split("").reverse().join(""); $("#addr-$randId").html("" + addr + " "); });  EOD; return $html; } 

Il utilise deux méthodes: droit à gauche dir et javascript.

Option 1: diviser l’adresse e-mail en plusieurs parties et créer un tableau dans JavaScript en dehors de ces parties. Ensuite, joignez ces parties dans le bon ordre et utilisez la propriété .innerHTML pour append l’adresse électronique à la page Web.

    // blank tag  

Option 2: Utiliser l’image au lieu du message électronique

Site de créateur d’image à partir du texte: http://www.chxo.com/labelgen/

Option 3: Nous pouvons utiliser AT au lieu de “@” et DOT au lieu de “.”

c’est à dire :

  info(AT)XXXabc(DOT)com 

Je n’aime pas mélanger JavaScript et HTML, c’est pourquoi j’utilise cette solution. Cela fonctionne bien pour moi, pour le moment.

Idée : vous pourriez compliquer les choses en fournissant des informations chiffrées dans les atsortingbuts de data et en les déchiffrant dans le JS. Cela se fait simplement en remplaçant les lettres ou en les inversant.

HTML :

 placeholder 

JS :

 $(function() { $('.generate-email').each(function() { var that = $(this); that.html( that.data('part1') + '@' + that.data('part2') + '.' + that.data('part3') ); }); }); 

Essayez-le: http://jsfiddle.net/x6g9L817/

C’est probablement le protecteur d’e-mail le meilleur et le plus facile sur Internet. Très simple pourtant, il a la capacité d’append tous les cloches et les sifflets.

Protection du courrier électronique sur les pages Web

Utilise JavaScript. Je l’utilise avec succès depuis des années.

Voici une solution simple à ce problème:

   

J’aime mieux la réponse de ofaurax mais je voudrais modifier cela pour un email un peu plus caché:

 onclick="p1='admin'; p2='domain.com'; this.href='mailto:' + p1 + '& #x40;' + p2" 

Je dois juste fournir une autre réponse. I just came up with something fun to play with.

I found out that in many common character tables, the letters @ and az reappear more than once. You can map the original characters to the new mappings and make it harder for spam bots to figure out what the e-mail is.

If you loop through the ssortingng, and get the character code of a letter, then add 65248 to it and build a html entity based on the number, you come up with a human readable e-mail address.

 var str = '[email protected]'; str = str.toLowerCase().replace(/[\.@az]/gi, function(match, position, str){ var num = str.charCodeAt(position); return ('&#' + (num + 65248) + ';'); }); 

Here is a working fiddle: http://jsfiddle.net/EhtSC/8/

You can improve this approach by creating a more complete set of mappings between characters that look the same. But if you copy/paste the e-mail to notepad, for example, you get a lot of boxes.

To overcome some of the user experience issues, I created the e-mail as link. When you click it, it remaps the characters back to their originals.

To improve this, you can create more complex character mappings if you like. If you can find several characters that can be used for example in the place of ‘a’ why not randomly mapping to those.

Probably not the most secure approach ever but I really had fun playing around with it 😀