Masquer l’adresse e-mail de Bots – Conservez mailto:

tl; dr

Cacher l’adresse e-mail des robots sans utiliser de scripts et gérer la fonctionnalité mailto: . La méthode doit également prendre en charge les lecteurs d’écran.


Résumé


Effet souhaité:

  • Pas de script , s’il vous plaît. Il n’y a pas de scripts utilisés dans le projet et j’aimerais que cela rest ainsi .

  • L’adresse e-mail est soit affichée sur la page, soit facilement affichée après une sorte d’interaction avec l’utilisateur, comme l’ouverture d’un modal.

  • L’ utilisateur peut cliquer sur l’adresse e-mail qui déclenche la fonctionnalité mailto:

  • En cliquant sur l’e-mail, vous ouvrez l’application de messagerie de l’utilisateur.

    En d’autres termes, mailto: fonctionnalité doit fonctionner.

  • L’adresse e-mail n’est pas visible ou n’est pas identifiée comme adresse e-mail aux robots (cela inclut la source de la page)

  • Je n’ai pas de boîte de réception pleine de spam


Ce qui ne fonctionne pas

  • Ajouter un formulaire de contact – ou quelque chose de similaire – au lieu de l’adresse e-mail

    Je déteste les formulaires de contact . Je remplis rarement un formulaire de contact. S’il n’y a pas d’adresse email, je cherche un numéro de téléphone et si ce n’est pas le cas, je commence à chercher un service alternatif. Je ne ferais que remplir un formulaire de contact si je le devais absolument.

  • Remplacer l’adresse par une image de l’adresse

    Cela crée un désavantage énorme pour une personne utilisant un lecteur d’écran ( rappelez-vous les déficients visuels dans vos projets futurs )

    Il supprime également la fonctionnalité mailto: moins que vous ne cliquiez sur l’image et que vous ajoutiez ensuite la fonctionnalité mailto: tant que href pour le lien, mais cela irait à l’encontre du but et l’e-mail est désormais visible pour les bots.


Ce qui pourrait fonctionner:

  • Utilisation intelligente des pseudo-elements en CSS

  • Des solutions utilisant l’encodage base64

  • Décomposer l’adresse e-mail et répartir les pièces dans le document, puis les regrouper dans un modal lorsque l’utilisateur clique sur un bouton (cela impliquera probablement plusieurs classes CSS et l’utilisation de anchor tags )

  • Modifier les atsortingbuts html via CSS

    @MortezaAsadi a gracieusement évoqué la possibilité dans les commentaires ci-dessous. Ceci est le lien vers la totalité – L’article est de 2012:

    Que faire si nous pouvions utiliser CSS pour modifier les atsortingbuts HTML?

  • Autres solutions créatives qui dépassent mes connaissances.


Questions similaires / Corrections

  • JavaScript: Protégez votre adresse e-mail par Joe Maller

(Ceci est un excellent correctif suggéré par Joe Maller, ça marche bien mais c’est basé sur un script . Voici à quoi ça ressemble;

  emailE = 'emailserver.com' emailE = ('yourname' + '@' + emailE) document.write('' + emailE + '')   Email address protected by JavaScript  

  • Vous recherchez une fonction php uniquement pour adresse email

    (Une solution astucieuse utilisant à la fois PHP et CSS pour inverser le courrier électronique en utilisant PHP puis inverser avec CSS) Une solution très prometteuse qui fonctionne très bien! Mais c’est trop facile à résoudre .

  • Vaut-il la peine de dissimuler les adresses électroniques sur le Web ces jours-ci?

    (Correctif Javascript)

  • Le meilleur moyen de masquer une adresse e-mail sur un site Web?

    La réponse sélectionnée fonctionne . Cela fonctionne vraiment très bien. Cela implique l’encodage du courrier électronique sous la forme d’ html entities . Peut-il être amélioré?

    Voici à quoi ça ressemble;

  • Est-ce que le masquage des adresses e-mail fonctionne réellement?

    (La réponse sélectionnée à cette question de SuperUser est excellente et elle présente une étude de la quantité de spam reçue en utilisant différentes méthodes d’obfuscation.

    Il semble que la manipulation de l’adresse e-mail avec CSS pour le rendre rtl fonctionne. C’est la même méthode utilisée dans la première question à laquelle j’ai lié dans cette section.

    Je ne sais pas quels effets l’ajout de mailto: fonctionnalité à la correction aurait sur les résultats.

  • Il y a aussi beaucoup d’autres questions sur SO qui ont toutes des réponses similaires. Je n’ai rien trouvé qui corresponde à l’ effet désiré


La question:

Serait-il possible d’ accroître l’efficacité (c’est-à-dire le moins de spam possible) des méthodes d’obscurcissement du courrier électronique ci-dessus en combinant plusieurs correctifs (ou en ajoutant de nouveaux correctifs) tout en:

A- Maintenir mailto: fonctionnalité; et

B- Soutenir les lecteurs d’écran


Modifier:

Bon nombre des réponses et commentaires ci-dessous posent une très bonne question tout en indiquant l’impossibilité de le faire sans une sorte de js

La question posée / implicite est la suivante:

Pourquoi ne pas utiliser js ?

La réponse est que je suis allergique à js

Blague à part cependant,

Les trois principales raisons pour lesquelles j’ai posé cette question sont les suivantes:

  • Les formulaires de contact sont de plus en plus acceptés pour remplacer une adresse e-mail, ce qu’ils ne devraient pas.

  • Si cela peut être fait sans script, cela devrait être fait sans script.

  • Curiosité: (comme je l’utilise en fait avec l’un des correctifs js actuellement), je voulais voir si discuter de la question conduirait à une meilleure façon de le faire.

Le problème avec votre demande est spécifiquement le “support d’écran”, car par définition les lecteurs d’écran sont un “bot” de quelque sorte. Si un lecteur d’écran doit être capable d’interpréter l’adresse électronique, un robot d’indexation peut également l’interpréter.

En outre, le but de l’atsortingbut mailto est d’être la norme en matière de traitement des adresses e-mail sur le Web. Demander s’il y a une seconde façon de faire, c’est demander s’il existe une deuxième norme.

Le faire via des scripts aura toujours le même problème qu’une fois la page chargée, le script aurait été exécuté et l’adresse e-mail restituée dans le DOM (à moins que vous ne remplissiez l’adresse e-mail on click ). Quoi qu’il en soit, les lecteurs d’écran auront toujours des problèmes avec ce problème car ils ne sont pas déjà chargés.

Honnêtement, obtenez simplement un service de messagerie avec un filtre anti-spam à moitié décent et spécifiez une ligne d’object par défaut facile à sortinger dans votre boîte de réception.

 Email me 

Ce que vous demandez, c’est si la norme a deux façons de faire, l’une pour les robots et l’autre pour les non-bots. La réponse est que ce n’est pas le cas et que vous devez simplement combattre les robots du mieux que vous pouvez.

Vaincre les robots de messagerie est difficile. Vous pouvez consulter la section des contre-mesures de la collecte d’adresses électroniques sur Wikipedia.

Mon histoire est que j’ai écrit un bot de recherche. Il a exploré plus de 105 000 URL au cours de son lancement initial il y a plusieurs années. D’après ce que j’ai appris en faisant cela, les robots d’exploration du Web voient littéralement TOUT ce qui est du texte, qui apparaît sur une page Web. Les bots lisent tout sauf les images.

Le spam ne peut pas être facilement arrêté via le code pour les raisons suivantes:

  1. CSS & JS ne sont pas pertinents lorsque vous utilisez le tag mailto: Les bots recherchent spécifiquement les pages HTML pour ce mot clé “mailto:”. Tout ce qui se trouve entre ces deux points et la citation ou le double guillemet suivant (selon la première éventualité) est considéré comme une adresse électronique. Les adresses électroniques d’entité HTML – comme l’exemple ci-dessus – peuvent être rapidement traduites en utilisant une méthode / fonction ASCII inversée. L’exécution de l’extrait de code JavaScript ci-dessus transforme rapidement la chaîne commençant par: & # 121; & # 111; & # 117; & # 114; … dans … “[email protected]”. (Mon bot de recherche a jeté des hrefs avec mailto: adresses e-mail, car je voulais des URL pour les pages Web et non les adresses électroniques.)

  2. Si une page plante un bot, l’auteur du bot ajustera le bot pour corriger le crash en pensant à cette page, afin que le bot ne se bloque plus sur cette page à l’avenir. Rendant ainsi leur bot plus intelligent.

  3. Les auteurs de bot peuvent écrire des bots, qui génèrent toutes les variations connues des adresses e-mail … sans explorer les pages et sans utiliser aucune adresse e-mail de départ. Bien que cela ne soit peut-être pas réalisable, cela n’est pas inconcevable avec les processeurs à haut niveau de cœur (hyper-threadés à 4 + GHz), ainsi que la disponibilité de l’informatique dissortingbuée basée sur le cloud et même de superordinateurs. Il est concevable que quelqu’un puisse maintenant créer une bot-ferme pour spammer tout le monde, sans connaître l’adresse e-mail de quiconque. Il y a 20 ans, cela aurait été incompréhensible.

  4. Les fournisseurs de messagerie gratuits ont toujours vendu leurs comptes d’utilisateurs gratuits à leurs annonceurs. Par le passé, la simple inscription à un compte de messagerie gratuit leur garantissait automatiquement le feu vert pour commencer à envoyer du spam à cette adresse e-mail … sans jamais utiliser cette adresse e-mail en ligne. J’ai vu cela se produire à plusieurs resockets, avec des noms de sociétés célèbres. (Je ne mentionnerai aucun nom.)

  5. Le mot-clé mailto: fait partie de cette RFC IETF , où les navigateurs sont conçus pour lancer automatiquement les clients de messagerie par défaut, à partir de liens contenant ce mot-clé. JavaScript doit être utilisé pour interrompre le processus de lancement de l’application, le cas échéant.

Je ne pense pas qu’il soit possible d’arrêter 100% du spam en utilisant les serveurs de messagerie traditionnels, sans utiliser de filtres sur le serveur de messagerie et éventuellement en utilisant des images.

Il existe une alternative … Vous pouvez également créer un client de messagerie de type chat, qui s’exécute en interne sur un site Web. Ce serait comme le client de chat de Facebook. C’est “un peu comme le courrier électronique”, mais pas vraiment le courrier électronique. Il s’agit simplement d’une messagerie instantanée 1: 1 avec une fonction d’archivage … qui se charge automatiquement lors de la connexion. Comme il comporte des fonctionnalités de pièce jointe et de lien, cela fonctionne comme un courrier électronique … mais sans le spam. Tant que vous ne construisez pas d’API accessible de l’extérieur, il s’agit d’un système fermé dans lequel les utilisateurs ne peuvent pas envoyer de spam.

Si vous envisagez de vous en tenir au courrier électronique ssortingctement traditionnel, votre meilleur pari est peut-être de lancer quelque chose comme SpamAssassin d’Apache sur le serveur de messagerie d’une entreprise.

Vous pouvez également essayer de combiner plusieurs stratégies, comme vous l’avez indiqué ci-dessus, pour que les collecteurs d’e-mails aient plus de difficulté à glaner des adresses e-mail sur vos pages Web. Ils n’arrêteront pas 100% du spam, 100% du temps … tout en permettant à 100% des lecteurs d’écran de travailler pour les visiteurs aveugles.

Vous avez créé un très bon aperçu de ce qui ne va pas avec le courrier électronique traditionnel! Bravo à toi pour ça!

Un bon lecteur d’écran est JAWS de Freedom Scientific . Je l’ai déjà utilisé pour écouter la lecture de mes pages Web par des utilisateurs aveugles. (Si vous entendez une voix masculine lisant les deux actions [comme cliquer sur un lien] et du texte, essayez de changer 1 voix en féminin pour qu’une voix lise les actions et une autre le texte. Cela facilite la lecture de la page Web) le visuellement impared.)

Bonne chance avec votre adresse e – mail Collecte des contre-mesures !

Voici une approche qui utilise JavaScript, mais avec une empreinte plutôt réduite. C’est aussi très “ghetto”, et en général je ne recommanderais pas une approche avec JS inline dans le HTML sauf que vous avez une réticence extrême à utiliser JS, du tout.

Avez-vous pensé à utiliser recaptcha mailhide de Google? https://www.google.com/recaptcha/admin#mailhide

L’idée est que lorsqu’un utilisateur clique sur la case à cocher ( voir ci-dessous nocaptcha ), l’adresse de messagerie complète est affichée.

Alors que recaptcha est traditionnellement non seulement difficile à lire pour les lecteurs d’écran, mais aussi pour les humains, le rôle de «nocaptcha recaptcha» de Google que vous pouvez lire ici concerne les tests d’accessibilité. Il semble prometteur en ce qui concerne les lecteurs d’écran car il se présente sous la forme d’une case à cocher traditionnelle. Nocaptcha reCAPTCHA

Exemple n ° 1 – Non sécurisé mais pour une illustration facile de l’idée

Voici un exemple de code sans utiliser mailhide mais implémentant quelque chose avec recaptcha: https://jsfiddle.net/43fad8pf/36/

 
Verify captcha to get e-mail
function createRecaptcha() { grecaptcha.render("recaptcha", {sitekey: "6LcgSAMTAAAAACc2C7rc6HB9ZmEX4SyB0bbAJvTG", theme: "light", callback: showEmail}); } createRecaptcha(); function showEmail() { // ideally you would do server side verification of the captcha and then the server would return the e-mail document.getElementById("email").innerHTML = "[email protected]"; }

Note: Dans mon exemple, j’ai le courrier électronique dans une fonction javascript. Idéalement, vous devriez faire valider le recaptcha à la fin du serveur et renvoyer le courrier électronique, sinon le bot peut simplement l’obtenir dans le code.

Exemple # 2 – Validation côté serveur et retour du courrier électronique

Si nous utilisons un exemple comme celui-ci, nous obtenons une sécurité supplémentaire: https://designracy.com/recaptcha-using-ajax-php-and-jquery/

 function showEmail() { /* Check if the captcha is complete */ if ($("#g-recaptcha-response").val()) { $.ajax({ type: 'POST', url: "verify.php", // The file we're making the request to dataType: 'html', async: true, data: { captchaResponse: $("#g-recaptcha-response").val() // The generated response from the widget sent as a POST parameter }, success: function (data) { alert("everything looks ok. Here is where we would take 'data' which contains the e-mail and put it somewhere in the document"); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert("You're a bot"); } }); } else { alert("Please fill the captcha!"); } }); 

Où verify.php est:

 $captcha = filter_input(INPUT_POST, 'captchaResponse'); // get the captchaResponse parameter sent from our ajax /* Check if captcha is filled */ if (!$captcha) { http_response_code(401); // Return error code if there is no captcha } $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YOUR-SECRET-KEY-HERE&response=" . $captcha); if ($response . success == false) { echo 'SPAM'; http_response_code(401); // It's SPAM! RETURN SOME KIND OF ERROR } else { // Everything is ok, should output this in json or something better, but this is an example echo '[email protected]'; } 

Les personnes qui écrivent des grattoirs veulent rendre leurs racleurs aussi efficaces que possible. Par conséquent, ils ne téléchargent pas les styles, les scripts et les autres ressources externes. Il n’y a pas de méthode que je connaisse pour définir un lien mailto utilisant CSS. En outre, vous avez spécifiquement indiqué que vous ne souhaitiez pas définir le lien en utilisant Javascript.

Si vous pensez aux autres types de ressources, il existe également des documents externes (c.-à-d. Des documents HTML utilisant des iframes). Presque aucun grattoir ne prendrait la peine de télécharger le contenu des iframes. Par conséquent, vous pouvez simplement faire:

index.html:

  

frame.html:

 My email is [email protected] 

Pour les utilisateurs humains, l’iframe ressemble à du texte normal. Les iframes sont en ligne et transparents par défaut, il suffit donc de définir leur bordure et leurs dimensions. Vous ne pouvez pas faire en sorte que la taille de l’iframe corresponde à la taille de son contenu sans utiliser Javascript, de sorte que le mieux que nous puissions faire est de lui donner des dimensions prédéfinies.

Tout d’abord, je ne pense pas que faire quoi que ce soit avec CSS fonctionnera. Tous les robots (à l’exception du robot d’exploration de Google) ignorent tout le style des sites Web. Toute solution doit fonctionner avec JS ou côté serveur.

Une solution côté serveur peut créer un lien vers un nouvel onglet, qui redirige simplement vers le mailto souhaité:

C’est toutes mes idées pour le moment. J’espère que cela aide.

Simple + Lot de @ + éditable sans outils

Une réponse courte à toutes vos exigences est que c’est impossible

Certaines des options basées sur des scripts auxquelles nous répondons ici peuvent fonctionner pour certains robots, mais vous ne voulez pas de script, alors non, vous ne le pouvez pas.

La seule méthode que j’ai trouvée efficace est de l’utiliser avec css comme ci-dessous:

myemail@ignore-domain.com

et puis écrivez un javascript pour supprimer le mot- ignoreme- de l’ href="mailto:..." avec regex. Cela ignore- courrier électronique de bot car il appenda ignore- word avant le domaine réel et cela fonctionnera sur le lecteur d’écran et lorsque l’utilisateur clique sur le lien, la fonction js supprimera le mot ignore- de l’atsortingbut href pour ouvrir le véritable email.

Cette méthode a fonctionné très efficacement pour moi jusqu’à ce jour. vous pouvez en savoir plus à ce sujet – http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/