115 votes

Cacher l'adresse e-mail des robots - Garder mailto :

Tl;dr

Cachez l'adresse électronique des robots sans utiliser de scripts et maintenez-la. mailto: fonctionnalité. La méthode doit également prendre en charge les lecteurs d'écran.


Résumé

  • Courriel : obfuscation sans en utilisant scripts ou les formulaires de contact

  • L'adresse électronique doit être complètement visible aux téléspectateurs humains et maintenir mailto: fonctionnalité

  • Adresse électronique ne doit pas être sous forme d'image .

  • Adresse électronique doit être "complètement" caché des robots spammeurs et des spam-bots. y tout autre type de moissonneuse


Effet désiré :

  • Aucun script s'il vous plaît. Il n'y a pas de scripts utilisés dans le projet. J'aimerais que ça reste comme ça. .

  • L'adresse électronique est soit affiché sur la page ou peuvent être facilement affichés après une certaine forme d'interaction avec l'utilisateur, comme l'ouverture d'une modale.

  • El l'utilisateur peut cliquer sur l'adresse e-mail qui, à son tour, déclencherait le mailto: fonctionnalité.

  • En cliquant sur l'e-mail, l'application de messagerie de l'utilisateur s'ouvre.

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

  • L'adresse électronique n'est pas visible ou n'est pas identifiée comme une adresse électronique par les robots. (Cela inclut la source de la page)

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


Qu'est-ce que NO Travail

  • Ajout d'un formulaire de contact - ou de tout autre élément similaire - à la place de l'adresse électronique

    Je déteste les formulaires de contact . Je remplis rarement un formulaire de contact. S'il n'y a pas d'adresse électronique, je cherche un numéro de téléphone, et s'il n'y en a pas, je commence à chercher un autre service. Je ne remplirai un formulaire de contact que si j'y suis absolument obligé.

  • Remplacement de l'adresse par une image de l'adresse

    Cela crée un ÉNORME désavantage pour une personne utilisant un lecteur d'écran ( s'il vous plaît, n'oubliez pas les déf déficients visuels dans vos futurs projets )

    Il a également supprime le site mailto: à moins que vous ne rendiez l'image cliquable et que vous n'ajoutiez ensuite la fonction mailto: comme la href pour le lien, mais que va à l'encontre du but recherché et maintenant l'email est visible pour les robots.


Ce qui pourrait marcher :

  • Utilisation intelligente de pseudo-elements en CSS

  • Les solutions qui font appel à base64 codage

  • La rupture l'adresse électronique et répartir les éléments dans le document, puis les rassembler dans une modale lorsque l'utilisateur clique sur un bouton. CSS et l'utilisation de anchor tags )

  • Alterting html attributs via CSS

    @MortezaAsadi a gracieusement évoqué cette possibilité dans les commentaires ci-dessous. Voici le lien vers l'article complet - L'article date de 2012 :

    Et si nous pouvions utiliser les CSS pour modifier les attributs HTML ?

  • D'autres solutions créatives qui dépassent le cadre de mes connaissances.


Questions similaires / Corrections

(Il s'agit d'un excellent correctif suggéré par Joe Maller, il fonctionne bien mais il est Basé sur script . Voici à quoi ça ressemble ;

<SCRIPT TYPE="text/javascript">

  emailE = 'emailserver.com'

  emailE = ('yourname' + '@' + emailE)

  document.write('<A href="mailto:' + emailE + '">' + emailE + '</a>')

</script>

<NOSCRIPT>

  Email address protected by JavaScript

</NOSCRIPT>
  • Recherche d'une fonction d'obfuscation d'adresse électronique en php uniquement

    (Une solution astucieuse utilisant à la fois PHP y CSS au premier inverser l'email en utilisant PHP alors l'inverser de retour avec CSS) Une solution très prometteuse qui fonctionne bien ! Mais c'est trop facile à résoudre .

  • Cela vaut-il la peine d'obscurcir les adresses électroniques sur le web de nos jours ?

    (correction Javascript)

  • La meilleure façon d'obscurcir une adresse électronique sur un site web ?

    La réponse sélectionnée fonctionne . En fait, cela fonctionne très bien. Il s'agit de coder l'email en tant que html entities . Peut-on l'améliorer ?

    Voilà à quoi ça ressemble ;

    <A HREF="mailto:
    
    &#121;&#111;&#117;&#114;&#110;&#097;&#109;&#101;&#064;&#100;&#111;&#109;&#097;&#105;&#110;&#046;&#099;&#111;&#109;">
    
    &#121;&#111;&#117;&#114;&#110;&#097;&#109;&#101;&#064;&#100;&#111;&#109;&#097;&#105;&#110;&#046;&#099;&#111;&#109;
    
    </A>
  • L'obscurcissement des adresses électroniques fonctionne-t-il vraiment ?

    (La réponse sélectionnée à cette question de SuperUser est excellente et 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 faire rtl fonctionne. Il s'agit de la même méthode que celle utilisée dans la première question à laquelle j'ai fait référence dans cette section.

    Je ne suis pas sûr des effets de l'ajout de mailto: la fonctionnalité du correctif 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 mon effet désiré


La question :

Serait-il possible de augmenter l'efficacité (c'est-à-dire le moins de spam possible) des méthodes d'obfuscation des e-mails ci-dessus en combiner deux ou plusieurs des corrections (ou même ajouter de nouvelles corrections) alors que :

A- Maintien mailto: la fonctionnalité ; et

B- Soutien aux lecteurs d'écran


Editar:

De nombreux réponses et commentaires ci-dessous poser une très bonne question tout en indiquant l'impossibilité de le faire sans une sorte de js

La question qui est demandé/impliqué est :

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 comme un substitut à la fourniture d'une adresse électronique. pour fournir une adresse électronique - ce qui ne devrait pas être le cas.

  • Si elle peut être fait sans script, alors il devrait être fait sans script.

  • La curiosité : (car j'utilise en fait l'un des modèles de js fixe actuellement) je voulais voir si le fait de discuter de la question peut mener à une meilleure façon de faire.

4voto

Linksku Points 2461

Les personnes qui écrivent des scrapeurs veulent que leurs scrapeurs soient aussi efficaces que possible. Par conséquent, ils ne téléchargeront pas de styles, de scripts et d'autres ressources externes. À ma connaissance, il n'existe pas de méthode permettant de définir une valeur de mailto à l'aide de CSS. En outre, vous avez spécifiquement dit que vous ne vouliez pas définir le lien à l'aide de Javascript.

Si vous pensez aux autres types de ressources, il y a aussi les documents externes (c'est-à-dire les documents HTML utilisant des iframes). Presque aucun racleur ne prendrait la peine de télécharger le contenu des iframes. Par conséquent, vous pouvez simplement faire :

index.html :

<iframe src="frame.html" style="height: 1em; width: 100%; border: 0;"></iframe>

frame.html :

My email is <a href="mailto:me@example.com" target="_top">me@example.com</a>

Pour les utilisateurs humains, l'iframe ressemble à un texte normal. Les iframes sont en ligne et transparentes par défaut, il suffit donc de définir leur bordure et leurs dimensions. Il est impossible de faire correspondre la taille de l'iframe à celle de son contenu sans utiliser Javascript. Le mieux que l'on puisse faire est de lui donner des dimensions prédéfinies.

3voto

Pablo Kvitca Points 336

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

Une solution côté serveur pourrait consister à créer un <a> qui renvoie vers un nouvel onglet, qui redirige simplement vers l'endroit souhaité mailto :

C'est toutes mes idées pour le moment. J'espère que cela vous aidera.

2voto

peiiion Points 170

La réponse courte pour répondre à toutes vos exigences est la suivante c'est impossible

Certaines des options basées sur le script qui ont été répondues ici peuvent fonctionner pour certains bots, mais vous ne vouliez pas de script, donc, non, vous ne pouvez pas.

-4voto

Ashish Panchal Points 435

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

<a href="mailto:myemail@ignore-domain.com">myemail@<span style="display:none;">ignore-</span>domain.com

et ensuite écrire un javascript pour enlever le ignoreme- mot de la href="mailto:..." avec une expression rationnelle. Cela cachera l'email du robot car il ajoutera ignore- avant le domaine réel et cela fonctionnera sur le lecteur d'écran et lorsque l'utilisateur cliquera sur le lien, la fonction js personnalisée supprimera l'élément ignore- mot de href afin qu'il ouvre le vrai courriel.

Cette méthode s'est avérée très efficace pour moi jusqu'à présent. Vous pouvez en savoir plus à ce propos - http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X