Ich habe in den letzten Tagen daran gearbeitet, meine persönliche Website zu aktualisieren. Die URL meiner persönlichen Website lautet (mein Vorname). (Mein Nachname) .com, da mein Nachname eher ungewöhnlich ist und ich das Glück hatte, den Domainnamen zu finden. Meine E-Mail-Adresse lautet (mein Vorname) @ (mein Nachname) .com. Also wirklich, wenn es darum geht, es zu erraten, ist es nicht sehr schwer.
Wie auch immer, ich möchte einen mailto: -Link in meine Website integrieren, damit die Leute mich kontaktieren können. Und obwohl meine E-Mail-Adresse nicht sehr schwer zu erraten ist, möchte ich sie lieber nicht von Spam-Bots abrufen lassen, die nur Websites nach E-Mail-Adressmustern durchsuchen und sie ihrer Datenbank hinzufügen.
Was ist der beste Weg für mich, meine E-Mail-Adresse zu verschleiern, vorzugsweise in Linkform? Die Methoden, die ich kenne, sind:
<a href="mailto:[email protected]">e-mail me</a>
Es funktioniert, aber es bedeutet auch, dass ich, sobald meine Website auf Google trifft, durch Spam waten werde, da Spam-Bots meine E-Mail-Adresse leicht herausfinden können.
<img src="images/e-mail.png" />
Dies ist weniger wünschenswert, da Besucher nicht nur nicht darauf klicken können, um mir eine E-Mail zu senden, sondern auch intelligentere Spam-Bots möglicherweise die im Bild enthaltenen Zeichen erkennen können.
Ich weiß, dass es wahrscheinlich keine perfekte Lösung gibt, aber ich habe mich nur gefragt, was alle für das Beste hielten. Ich bin definitiv bereit, bei Bedarf JavaScript zu verwenden, da meine Website bereits Tonnen davon verwendet.
quelle
Antworten:
Ich codiere die Zeichen als HTML-Entitäten ( so ähnlich ). JS muss nicht aktiviert sein und scheint den größten Teil des Spam gestoppt zu haben. Ich nehme an, ein intelligenter Bot könnte es noch ernten, aber ich hatte keine Probleme.
quelle
Persönlich habe ich es aufgegeben, meine E-Mail-Adresse zu verstecken. Ich finde es einfacher, nach besseren Spam-Filterlösungen zu suchen, als mir Sorgen um die Verschleierung zu machen. Sie könnten Tage damit verbringen, den besten Weg zu finden, um Ihre Adresse zu verschleiern, und dann brauchen Sie nur noch eine Person, um Ihre Adresse an einen Spammer zu verkaufen, und all diese Arbeit war nutzlos.
quelle
Die derzeit akzeptierte Lösung besteht darin, ein Kontaktformular zu erstellen, mit dem Benutzer Ihnen eine E-Mail senden können. Wenn Sie dadurch viel Spam erhalten (ich nicht auf meiner Website), können Sie ein Captcha für ein gutes Maß hinzufügen, und Sie sind zu diesem Zeitpunkt weit entfernt von den "niedrig hängenden Früchten".
Tatsache ist, dass der Computer die E-Mail-Adresse von der Seite entschlüsseln kann, wenn Sie einen Link bereitstellen, auf den ein Benutzer klicken kann, um seinen E-Mail-Client mit Ihrer Adresse im Feld An: zu öffnen ein Spam-Bot.
quelle
Sie haben erwähnt, dass dies für Ihre persönliche Website ist. Auf meiner persönlichen Website (zum Beispiel bobsomers.com) habe ich nur einen Absatz, der Folgendes sagt:
Die Leute scheinen in der Lage zu sein, das ganz gut herauszufinden, da ich ständig legitime E-Mails bekomme. Manchmal müssen für die besten Lösungen kein Code geschrieben werden. :) :)
quelle
reCAPTCHA bietet einen einfachen E-Mail-Verschleierungsservice . Sie müssen kein Konto einrichten und können es sofort verwenden. Sie können den Dienst als Link oder als Popup verwenden.
Nachdem das Captcha gelöst wurde, wird Ihre E-Mail-Adresse als href / mailto angezeigt, sodass Benutzer, die ihre E-Mail-Clients für die Arbeit mit ihren Browsern konfiguriert haben, darauf klicken / folgen können.
quelle
Eine einfache Möglichkeit, die
href
eines Ankers zu verschleiern, besteht darin, ihn mit base64 zu codieren:Und dann fügen Sie es fest codiert ein:
Oder dynamisch serverseitig, zB in PHP:
In Kombination mit der String-Umkehrung kann dies ziemlich spam-sicher sein:
quelle
Anscheinend mit CSS, um die Richtung Ihres Textes zu ändern funktioniert die ziemlich gut. Dieser Link enthält auch einen Test einer Reihe anderer Verschleierungsmethoden.
Was auch immer Sie verwenden, wird unweigerlich besiegt. Ihr primäres Ziel sollte es sein, zu vermeiden, dass Ihre Benutzer belästigt werden.
quelle
Verwenden Sie hier keine Verschleierungstechniken, da dies wahrscheinlich der erste Ort ist, an dem die E-Mail-Harvester herausfinden, wie Menschen E-Mails verschleiern. Wenn Sie Ihre E-Mail-Adresse auf der Website sichtbar haben müssen, kopieren Sie nicht einfach wörtlich die Methode eines anderen. Verschleiern Sie es auf eine einzigartige Weise, die kein anderer Standort verwendet hat, sodass Ihre Methode den Erntemaschinen nicht bekannt ist, bevor sie Ihren Standort besuchen.
quelle
Sie können wie bei Google Code (und Gruppen) vorgehen. Zeigen Sie einen Teil der E-Mail und einen anklickbaren Teil ("...") an. Wenn Sie darauf klicken, wird angezeigt, dass Sie die E-Mail wissen möchten, und Sie werden aufgefordert, ein Captcha auszufüllen. Danach sind die E-Mails (und andere?) Für Sie sichtbar.
quelle
meins ist eigentlich einfach:
quelle
Ich verwende JavaScript-Verschleierung. Schauen Sie sich diese zum Beispiel an:
http://www.jottings.com/obfuscator/
quelle
Eine Website, die ich pflege, verwendet ein etwas vereinfachtes JavaScript-Mittel, um (hoffentlich) Spambots fernzuhalten.
E-Mail-Links rufen eine JS-Funktion auf:
Um sicherzustellen, dass nur Benutzer mit aktiviertem JS den Link sehen können, schreiben Sie sie folgendermaßen aus:
Die Verwendung einer JS-Funktion zum Schreiben eines Links, der eine andere aufruft, bedeutet, dass zwei Schutzschichten vorhanden sind.
quelle
Wie oben erwähnt, verwende ich auch die JavaScript-Verschleierung von der Jottings-Website .
Die Webseite generiert JavaScript, das verbessert werden kann. Die
mailto:
Textzeichenfolge ist klar und durch Roboter identifizierbar (was dies erkennen und diese Zeichenfolge nicht verschleiern könnte), aber wenn man auf der jottings.com-Webseite eine E-Mail-Adresse des Formularsmailto:[email protected]
anstelle von eingibt[email protected]
und entfernt dann den Textmailto:
Aus dem generierten JavaScript hat man plötzlich JavaScript, das nicht so aussieht, als hätte es überhaupt etwas mit E-Mail zu tun - nur zufälliges JavaScript, dessen Web voll ist. Man kann dies noch weiter verbessern, indem man den Linktext entfernt - ich habe meinen durch ein Bild meiner E-Mail-Adresse ersetzt, das in einer ziemlich dunklen Schriftart vorliegt. Nur für den Fall, dass diese Methode auf jottings.com populär wird, habe ich die Variablennamen im Ausgabe-JavaScript randomisiert, um es einem Roboter zu erschweren, eine Instanz von durch Jottings generiertem JavaScript-Code zu erkennen.Offensichtlich könnten einige dieser Verbesserungen in den Mechanismus für Notizen selbst eingebaut werden, und da der Code offen verfügbar ist, wäre dies relativ einfach.
Ein Beispiel könnte dies etwas klarer machen. Ich habe den Jottings Obfuscator unter dem obigen Link verwendet, um den Text "Send Me Email" zu verschleiern
mailto:[email protected]
(beachten Sie, dass ich die ursprüngliche Absicht der Jottings-Website betrüge, indem ichmailto:[email protected]
stattdessen die Zeichenfolge[email protected]
eingebe). Diese Notizen wurden in dieses Javascript umgewandelt:Nachdem ich das zurückbekommen habe, füge ich es in einen Editor ein und:
mailto:
Am Ende habe ich Folgendes:
quelle
Ich weiß nicht, wie gut das funktionieren würde. Könnten Sie Ihre E-Mail-Adresse nicht weglassen und sie mit einem AJAX-Aufruf laden, sobald die Seite vollständig geladen ist? Sie sind sich nicht sicher, ob Spam-Bots den geänderten HTML-Code abrufen können oder ob sie klug genug sind, anderen HTTP-Verkehr abzuhören, um E-Mail-Adressen auszuwählen, oder ob sie die Seite beim ersten Empfang einfach scannen.
quelle
Ein Mann testete neun verschiedene Arten der Darstellung einer E-Mail-Adresse auf einer Seite und veröffentlichte die Ergebnisse in seinem Blog.
Seine drei besten Wege waren:
Vorsichtsmaßnahme - Dies wurde vor zwei Jahren veröffentlicht. Spam-Bots sind möglicherweise schlauer geworden.
quelle
Wenn Sie mit PHP arbeiten, können Sie ein kostenloses Skript herunterladen, das dies automatisch ausführt. Es heißt "Private Daddy" und wir verwenden es für unseren eigenen Online-Audio-Streaming-Service. Nur eine Codezeile und es funktioniert sofort ... Sie können es hier herunterladen
quelle
Ein anderer Ansatz könnte darin bestehen, ein JavaScript-Framework zu verwenden und die Daten / das Modell an die HTML-Elemente zu binden. Im Fall von AngularJS würden die HTML-Elemente wie folgt geschrieben:
Die Interpolationsbindung {{data}} verwendet eine Bereichsvariable, die den tatsächlichen E-Mail-Wert enthält. Darüber hinaus kann auch ein Filter verwendet werden, der die Dekodierung der E-Mail wie folgt behandelt:
Die Vorteile liegen in der Art und Weise, wie HTML geschrieben wird. Der Nachteil ist, dass es Skriptunterstützung erfordert, für die einige ein Nein Nein sein können.
nur ein anderer Ansatz.
quelle
Mit JQuery, kann aber bei Bedarf problemlos auf einfaches JS portiert werden. Nimmt den folgenden HTML-Block. Dieses Beispiel, das ich bereitgestellt habe, ist auch für
tel:
Links für Telefonanrufe.und konvertieren Sie es mit Javascript in die richtigen Links.
Ich habe es hier ausführlicher dokumentiert https://trajano.net/2017/01/obfuscating-mailto-links/
Der De / Obfuscation-Algorithmus ist ziemlich einfach, so dass das Schreiben auch nicht zu anstrengend ist (keine Base64-Analyse erforderlich).
quelle
Die Ajax-Anruflösung
Das Beste ist, ein Formular auf der Website zu haben und keine E-Mail-Adresse anzuzeigen, da alle Roboter Tag für Tag intelligenter sind. Wenn Sie jedoch die E-Mail-Adresse auf der Website anzeigen müssen, können Sie dies mit einem Ajax-Anruf auf Ihrer Website tun Server, und zeigen Sie es auf Klick.
HTML
oder
jQuery
PHP
Für mehr Sicherheit können Sie ändern ,
.on
indem.one
wie folgt aus$(document).one('click', '.obfmail', function(e) {
oder auch die Arbeit mit einem PHP - Token generiert , dass Sie in Daten auf Ajax - Aufruf übergeben, um nur ein Anruf von der Ajax - Funktion wie folgt zu akzeptieren:html:
<a class="obfmail" href="#" rel="info" token="w3487ghdr6rc">
jquery:
.
.
quelle
Ehrlich gesagt, Ihr Problem kann strittig sein, wenn Sie die Frage gestellt haben, ob ein Mailto wirklich das ist, was Sie verwenden möchten. Viele Leute, die beispielsweise Webmail verwenden oder nicht über das richtige Mail-Client-Setup in ihrem Browser verfügen, werden von einem Mailto nicht profitieren. Sie legen Ihre E-Mail-Adresse für eine Funktion offen, die für einen großen Teil Ihrer Benutzer nicht funktioniert.
Sie können stattdessen ein Formular verwenden, um die E-Mail hinter den Kulissen zu senden, sodass die E-Mail-Adresse verborgen bleibt und Sie sich keine Sorgen um die armen Saps machen müssen, die nicht von einem Mailto profitieren.
quelle
Wenn Sie auf Ihrer Website sagen, dass "Meine E-Mail-Adresse ist (mein Vorname) @ (mein Nachname) .com." Und Ihr Vor- und Nachname verdammt offensichtlich sind, scheint dies der beste Spam-Schutz zu sein du wirst bekommen.
quelle
Wenn jemand Rails benutzt, kann er den
actionview-encoded_mail_to
Edelstein benutzen . ( https://github.com/reed/actionview-encoded_mail_to )Es gibt einige Optionen:
quelle
quelle
Cloudflare bietet jetzt einen kostenlosen E-Mail-Verschleierungsservice an . Dies kann eine Option sein, wenn Sie Cloudlfare verwenden.
quelle
Da diese Lösung nirgendwo erwähnt wird, aber für mich gut funktioniert:
Ich mache das:
Erstellen Sie einen Mailto-Link mit gefälschten E-Mails. Ich mag [email protected] aus offensichtlichen Gründen: Spammer kann sein eigenes Botnetz spammen, wenn diese Adresse nicht aktiviert ist.
Verschlüsseln Sie die echte E-Mail-Adresse und geben Sie sie in eine nicht verwandte, aber auffindbare versteckte Spanne oder in ein beliebiges Element ein. Offensichtlich, um die E-Mail zu verschleiern und vor dem Mähdrescher zu verstecken. Abhängig von Ihrer Projektstruktur möchten Sie diese möglicherweise sogar in eine JS- oder Sitzungsvariable einfügen.
Erstellen Sie nach einer Sekunde einen Klick-Handler für diese Links, der die richtige E-Mail-Adresse entschlüsselt und in den gefälschten Mailto-Link schreibt, ohne die Standardeinstellungen zu verhindern. Ich glaube nicht, dass Crawler auf Mailto-Links klicken, aber wenn sie dies tun würden, würden sie wahrscheinlich keine Sekunde warten, während ein Mensch extrem schnell sein müsste, um in der ersten Sekunde nach dem Laden der Seite auf einen Link zu klicken.
Jetzt haben Sie einen voll funktionsfähigen, aber verschleierten, honeypotierten und zeitgesicherten Mailto-Link.
Arbeitsbeispiel PHP-Datei:
Möge der Code mit Ihnen sein.
quelle
Was passiert, wenn Sie einen Link "Kontakt" erstellen, der auf ein durch ein Passwort geschütztes Verzeichnis verweist? Natürlich müssen Sie den Zugangspass geben.
"Kontaktieren Sie mich"> ••••••••••••> contact / index.html
Nach dem Zugriff wird auf der Seite contact / index.html die E-Mail angezeigt, z. B. mailto.
quelle
Ich verwende eine PHP-Funktion , um Javascript zu generieren und die E-Mail beim Laden der Seite auszugeben. Beachten Sie, dass Sie PHP nicht benötigen , um das JS zur Laufzeit zu generieren. Sie können das JS einmal lokal generieren und dann das statische JS in Ihre Seite aufnehmen.
Sie können auch die mit diesem Snippet verknüpfte Funktion verwenden, um E-Mail-Adressen in einem bestimmten HTML-Code automatisch zu verschleiern (wobei $ processContent der HTML-Code ist):
quelle
Überprüfen Sie dies heraus.
Das 'Enkoder-Formular' verschlüsselt Ihre E-Mail-Adresse und konvertiert das Ergebnis in ein selbstbewertendes JavaScript. Es verbirgt es vor E-Mail-Ernterobotern, die das Web nach exponierten Adressen durchsuchen. Ihre Adresse wird von Webbrowsern korrekt angezeigt, ist jedoch für E-Mail-Ernteroboter praktisch nicht zu entziffern.
quelle