Auf meiner Homepage verwende ich diese Methode, um meine E-Mails vor Spam-Bots zu verbergen:
<a href="admin [at] example.com"
rel="nofollow"
onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a>
Was denkst du darüber? Ist es effektiv? Welche anderen Methoden kennen oder verwenden Sie?
this.href.replace(/x/g,'')
, den dritten Teil hexadezimal codiert usw. Kein Spam-Bot, egal wie clever er auch sein mag, versucht verschiedene Methoden zum Decodieren verschiedener Teile eines E-Mail-Addresse.Antworten:
Dies ist die Methode, die ich mit einem serverseitigen Include verwendet habe, z. B.
<!--#include file="emailObfuscator.include" -->
woemailObfuscator.include
Folgendes enthalten ist:Um eine Adresse einzuschließen, verwende ich JavaScript:
Da ich seit 2005 E-Mails über Google Mail erhalte, ist Spam so gut wie kein Problem. Ich kann also nicht sagen, wie effektiv diese Methode ist. Vielleicht möchten Sie diese Studie lesen (obwohl sie alt ist), die diese Grafik erstellt hat:
quelle
emailObfuscator.include
? Wäre es nicht dasselbe, als würde man es einfach in HTML schreiben? (Vielleicht ist es nur ein Beispiel?) Warum verwenden Sie auch HTML-Kommentare<!--
-->
im Skript? Und warum ist einer Ihrer<script>
Tags in Kleinbuchstaben, während andere in Großbuchstaben geschrieben sind<SCRIPT>
? Helfen diese Methoden, Bots oder ähnliches zu verwirren?Arbeiten mit Inhalten und attr in CSS:
Wenn Javascript deaktiviert ist, funktioniert nur das Klickereignis nicht. E-Mails werden weiterhin angezeigt.
Ein weiterer interessanter Ansatz (zumindest ohne Klickereignis) wäre die Verwendung der Markierung von rechts nach links, um die Schreibrichtung zu überschreiben. mehr dazu: https://en.wikipedia.org/wiki/Right-to-left_mark
quelle
Schauen Sie sich diesen Weg an , ziemlich clever und mit CSS.
CSS
HTML
Das obige CSS überschreibt dann die Leserichtung und präsentiert dem Benutzer den Text in der richtigen Reihenfolge.
Ich hoffe es hilft
Prost
quelle
Ich sehe das ganz anders. Ich benutze dafür MailHide .
MailHide ist ein System von Google, bei dem der Nutzer einen reCAPTCHA-Test durchführen muss, um die E-Mail an ihn weiterzugeben.
quelle
Ursprünglich nicht meine Idee, aber ich kann den Autor nicht finden:
Fügen Sie so viele x hinzu, wie Sie möchten. Es funktioniert perfekt zum Lesen, Kopieren und Einfügen und kann von einem Bot nicht gelesen werden.
quelle
Ich denke, die einzige narrensichere Methode, die Sie haben können, ist das Erstellen einer Kontaktseite, bei der es sich um ein Formular handelt, das an ein Skript gesendet wird, das an Ihre E-Mail-Adresse gesendet wird. Auf diese Weise wird Ihre Adresse niemals der Öffentlichkeit zugänglich gemacht. Dies mag aus irgendeinem Grund unerwünscht sein, aber ich denke, es ist eine ziemlich gute Lösung. Es ärgert mich oft, wenn ich gezwungen bin, die E-Mail-Adresse einer Person von ihrer Website auf meinen E-Mail-Client zu kopieren / einzufügen und ihnen eine Nachricht zu senden. Ich mache es lieber direkt über ein Formular auf ihrer Website. Mit diesem Ansatz können Sie auch anonyme Kommentare an Sie senden usw. Schützen Sie Ihr Formular nur mit einem Anti-Bot-Schema, z. B. einem Captcha. Es gibt viele davon, die hier auf SO diskutiert werden.
quelle
Siehe E-Mail-Adressen auf einer Webseite vor Bots schützen?
Ich mag die Art und Weise, wie Facebook und andere ein Bild Ihrer E-Mail-Adresse rendern.
Ich habe The Enkoder in der Vergangenheit auch benutzt - fand es sehr gut, um ehrlich zu sein!
quelle
Wenn Sie PHP-Unterstützung haben, können Sie so etwas tun:
Und die scriptname.php:
quelle
Ich weiß, dass meine Antwort vielen nicht gefallen wird, aber bitte beachten Sie die hier beschriebenen Punkte, bevor Sie nach unten blättern.
Alles, was leicht maschinenlesbar ist, ist für die Spammer leicht maschinenlesbar. Obwohl ihre Handlungen uns dumm erscheinen, sind sie keine dummen Menschen. Sie sind innovativ und einfallsreich. Sie verwenden nicht nur Bots, um E-Mails zu sammeln, sie verfügen auch über eine Vielzahl von Methoden und bezahlen außerdem einfach für gute neue Listen von E-Mails. Das bedeutet, dass sie weltweit Tausende von Black-Hat-Hackern dazu gebracht haben, ihre Jobs auszuführen. Leute, die bereit sind, Malware zu codieren, die die Bildschirme der Browser anderer Leute abkratzt, was schließlich jede Methode, die Sie erreichen möchten, unbrauchbar macht. Dieser Thread wurde bereits von mehr als 10 solchen Leuten gelesen und sie lachen über uns. Einige von ihnen langweilen sich vielleicht sogar zu Tränen, um herauszufinden, dass wir ihnen keine neue Herausforderung stellen können.
Denken Sie daran, dass Sie nicht versuchen, Ihre Zeit zu sparen, sondern die Zeit anderer. Aus diesem Grund sollten Sie hier etwas mehr Zeit verbringen. Es gibt keine einfach auszuführende magische Kugel, die funktionieren würde. Wenn Sie in einem Unternehmen arbeiten, das E-Mails von 100 Personen auf der Website veröffentlicht, und Sie 1 Spam-E-Mail pro Tag und Person reduzieren können, handelt es sich um 36500 Spam-E-Mails pro Jahr. Wenn das Löschen solcher E-Mails durchschnittlich 5 Sekunden dauert, sprechen wir von 50 Arbeitsstunden pro Jahr. Ganz zu schweigen von der reduzierten Belästigung. Warum also nicht ein paar Stunden damit verbringen?
Es sind nicht nur Sie und die Personen, die die E-Mail erhalten, die Zeit als Aktivposten betrachten. Daher müssen Sie einen Weg finden, die E-Mail-Adressen so zu verschleiern, dass es sich nicht auszahlt, sie zu knacken. Wenn Sie eine weit verbreitete Methode verwenden, um die E-Mails zu verschleiern, lohnt es sich wirklich, sie zu knacken. Infolgedessen erhält der Cracker Tausende, wenn nicht Zehntausende oder Hunderttausende frische E-Mails. Und für sie werden sie Geld bekommen.
Also, mach weiter und codiere deine eigene Methode. Dies ist ein seltener Fall, in dem es sich wirklich auszahlt, das Rad neu zu erfinden. Verwenden Sie eine Methode, die nicht maschinenlesbar ist und die vorzugsweise eine Benutzerinteraktion erfordert, ohne die Benutzererfahrung zu beeinträchtigen.
Ich habe ungefähr 20 Minuten damit verbracht, ein Beispiel für das, was ich meine, abzuschreiben. In diesem Beispiel habe ich KnockoutJS einfach verwendet, weil es mir gefällt und ich weiß, dass Sie es wahrscheinlich nicht selbst verwenden werden. Aber es ist trotzdem irrelevant. Es ist eine benutzerdefinierte Lösung, die nicht weit verbreitet ist. Das Knacken stellt keine Belohnung dafür dar, da die Methode nur auf einer einzigen Seite im riesigen Internet funktioniert.
Hier ist die Geige: http://jsfiddle.net/hzaw6/
Der folgende Code ist kein Beispiel für guten Code. Aber nur ein kurzes Beispiel für Code, der für die Maschine sehr schwer herauszufinden ist, wir bearbeiten hier sogar E-Mails. Und selbst wenn es möglich wäre, würde es sich nicht auszahlen, in großem Maßstab ausgeführt zu werden.
Und ja, ich weiß, dass es unter IE = lte8 nicht funktioniert, weil 'Eigenschaftsattribute' mit undefinierter oder Nullreferenz nicht abgerufen werden können ', aber es ist mir einfach egal, weil es nur eine Demo der Methode ist, keine tatsächliche Implementierung. und nicht für die Produktion vorgesehen, wie es ist. Fühlen Sie sich frei, Ihre eigenen zu codieren, die cooler, technisch solider usw. sind.
Oh, und niemals einen Namen oder eine E-Mail in HTML oder Javascript nennen. Es ist einfach viel zu einfach, das DOM und das Fensterobjekt nach E-Mails oder E-Mails zu durchsuchen und zu überprüfen, ob sie etwas enthalten, das mit einer E-Mail übereinstimmt. Aus diesem Grund möchten Sie niemals Variablen, die E-Mails in voller Form enthalten, und aus diesem Grund möchten Sie, dass der Benutzer mit der Seite interagiert, bevor Sie solche Variablen zuweisen. Wenn Ihr Javascript-Objektmodell E-Mail-Adressen im DOM-Bereitschaftsstatus enthält, setzen Sie diese den Spammern aus.
Der HTML:
Die JS
quelle
Eine meiner Lieblingsmethoden ist es, die E-Mail-Adresse mit PHP zu verschleiern. Ein klassisches Beispiel ist die Konvertierung der Zeichen in HEX-Werte wie folgt:
Und dann werde ich es in meinem Markup einfach wie folgt nennen:
Dann untersuchen Sie Ihre Quelle, Sie werden angenehm überrascht sein!
quelle
Sie können versuchen, Zeichen mithilfe von HTML-Entitäten in Hexa auszublenden (Beispiel: & # x40 für @). Dies ist eine bequeme Lösung, da ein korrekter Browser sie übersetzt und Sie einen normalen Link haben können. Der Nachteil ist, dass ein Bot es theoretisch übersetzen kann, aber es ist ein bisschen ungewöhnlich. Ich benutze dies, um meine E-Mail in meinem Blog zu schützen.
Eine andere Lösung besteht darin , Javascript zu verwenden, um einen Teil der Adresse zusammenzusetzen und die Adresse im laufenden Betrieb zu dekodieren. Der Nachteil ist, dass ein Browser mit deaktiviertem Javascript Ihre Adresse nicht anzeigt.
Die effektivste Lösung ist die Verwendung eines Bildes , aber es ist für den Benutzer ein Problem, die Adresse von Hand kopieren zu müssen.
Ihre Lösung ist ziemlich gut , da Sie nur für Benutzer, bei denen Javascript deaktiviert ist, einen Nachteil hinzufügen (das @ manuell schreiben). Sie können auch sicherer sein mit:
quelle
Spambots werden dies nicht interpretieren, da es sich um eine weniger bekannte Methode handelt :)
Definieren Sie zunächst das CSS:
Fügen Sie jetzt, wo immer Sie Ihre E-Mail anzeigen möchten, einfach den folgenden HTML-Code ein:
Und Tada!
quelle
Ich verwende eine sehr einfache Kombination aus CSS und jQuery, die dem Benutzer die E-Mail-Adresse korrekt anzeigt und auch funktioniert, wenn auf den Anker geklickt oder der Mauszeiger bewegt wird:
HTML:
CSS:
jQuery:
Hier ist ein Arbeitsbeispiel.
quelle
! - Wenn Sie dies als Referenz hinzufügen, wissen Sie nicht, wie veraltet die Informationen sein könnten, aber es handelt sich um einige einfache Lösungen, für die keine Skripte erforderlich sind
Nachdem ich selbst danach gesucht hatte, stieß ich auf diese Seite, aber auch auf diese Seiten:
http://nadeausoftware.com/articles/2007/05/stop_spammer_email_harvesters_obfuscating_email_addresses
Versuchen Sie, die E-Mail-Adresse umzukehren
Beispiel für einfaches HTML:
Der gleiche Effekt mit CSS
Wenn Sie dies mit einer der zuvor genannten Methoden kombinieren, wird es möglicherweise sogar effektiver
quelle
Eine einfache Lösung besteht darin, HTML-Entitäten anstelle von tatsächlichen Zeichen zu verwenden. Zum Beispiel wird "[email protected]" konvertiert in:
quelle
Hier ist meine Arbeitsversion:
Erstellen Sie irgendwo einen Container mit einem Fallback-Text:
Fügen Sie am unteren Rand des DOM (für das Rendering) den folgenden Ausschnitt hinzu:
Der generierte Hyperlink wird dem angegebenen Container hinzugefügt:
Außerdem gibt es hier eine minimierte Version:
quelle
Die beste Methode zum Ausblenden von E-Mail-Adressen ist nur dann gut, wenn der Bot-Programmierer diese "Codierung" entdeckt und einen Entschlüsselungsalgorithmus implementiert.
Die JavaScript-Option funktioniert nicht lange, da viele Crawler JavaScript interpretieren.
Es gibt keine Antwort, imho.
quelle
Es gibt wahrscheinlich Bots, die die
[at]
und andere Verkleidungen als@
Symbol erkennen. Dies ist also keine wirklich effektive Methode.Sicher könnten Sie einige Codierungen wie URL-Codierung oder HTML-Zeichenreferenzen (oder beides) verwenden:
Da es jedoch legal ist, sie zu verwenden, sollte jeder Browser / E-Mail-Client auch diese Codierungen verarbeiten.
quelle
Ich bin ein Fan von SpamSpan - es ist verschleiert, aber immer noch entzifferbar, wenn JS deaktiviert ist. Es scheint auch zu funktionieren, obwohl ich es erst seit ungefähr einem Jahr auf einer Website mit wenig Verkehr verwende.
Es gibt auch ein Modul für Drupal, mit dem E-Mails automatisch in SpamSpans umgewandelt werden können, falls Sie eines benötigen.
quelle
Funktioniert es, wenn ich mit der rechten Maustaste auf den Link klicke und "URL kopieren" wähle? Wenn nicht, ist dies keine ideale Situation (ich klicke sehr selten auf einen Mailto-Link und bevorzuge es, die E-Mail-Adresse zu kopieren und in meine E-Mail-Anwendung einzufügen oder wo immer ich sie zu einem bestimmten Zeitpunkt benötige).
Früher war ich ziemlich paranoid, meine E-Mail-Adresse online zu schützen (UseNet, Web und dergleichen), aber heutzutage vermute ich, dass tatsächlich mehr "mögliche Ziele für Spam" generiert werden, die lokale Teile programmgesteuert mit Domänen abgleichen. Ich stütze mich darauf, dass ich gelegentlich meine Mailserver-Protokolle durchgesehen habe. Es gibt in der Regel einige Übermittlungsversuche an nicht vorhandene Adressen (einschließlich abgeschnittener Versionen von Spam-Ködern, die ich Ende der 90er Jahre auf UseNet baumelte, als das Scraping von Adressen sehr verbreitet war).
quelle
Nachdem ich so viele Techniken angewendet hatte, fand ich einen einfachen und sehr freundlichen Weg. Die Bots suchen nach @ Símbolo und vor kurzem suchen sie nach [at] ant seiner Variation, also verwende ich 2 Techniken
und das Bild alt ist alt = "@", so dass der Bot ein Bild findet und jeder Mensch es als normale Adresse sieht. Wenn er es kopiert, kopiert er die E-Mail und der Job ist don, so dass der Code sein wird
quelle
Es gibt ein offenes Lizenz-PHP-Skript, das Javascript ausgibt, das die Mail verschlüsselt: http://www.maurits.vdschee.nl/php_hide_email/ . Sie können dann einfach die PHP-Funktion mit der spezifischen Mail als Argument aufrufen.
quelle
Zuerst würde ich sicherstellen, dass die E-Mail-Adresse nur angezeigt wird, wenn Sie Javascript aktiviert haben. Auf diese Weise gibt es keinen einfachen Text, der ohne Javascript gelesen werden kann.
Zweitens besteht eine Möglichkeit zur Implementierung einer sicheren Funktion darin, sich von der
<button>
Tag . Dieses Tag muss zwischen den Tags eingefügt werden, damit es vom Computer gelesen werden kann. Versuchen Sie stattdessen das<input type="button">
mit einem Javascript-Handler für einen onClick. Verwenden Sie dann alle von otherse genannten Techniken, um eine sichere E-Mail-Notation zu implementieren.Eine andere Möglichkeit ist eine Schaltfläche mit "Klicken, um die E-Mail-Adresse anzuzeigen". Nach dem Klicken ändert sich dies in eine codierte E-Mail (die Zeichen in HTML-Codes). Bei einem weiteren Klick wird die Funktion "mailto: email" weitergeleitet
Eine nicht codierte Version der letzten Idee mit auswählbaren und nicht auswählbaren E-Mail-Adressen:
Sehen Sie, ob Sie dies möchten, und kombinieren Sie es mit den Ideen anderer. Sie können nie zu sicher sein.
quelle
Und meine Funktion. Ich habe es mit Blick auf die Antworten in diesem Thema erstellt.
Es werden zwei Methoden verwendet: Dir von rechts nach links und Javascript-Putting.
quelle
Option 1: Teilen Sie die E-Mail-Adresse in mehrere Teile auf und erstellen Sie aus diesen Teilen ein Array in JavaScript. Verbinden Sie diese Teile als Nächstes in der richtigen Reihenfolge und verwenden Sie die Eigenschaft .innerHTML, um die E-Mail-Adresse zur Webseite hinzuzufügen.
Option 2: Verwenden Sie Bild anstelle von E-Mail-Text
Bildersteller-Website aus Text: http://www.chxo.com/labelgen/
Option 3: Wir können AT anstelle von "@" und DOT anstelle von "verwenden".
dh:
quelle
Ich mag es nicht, wenn JavaScript und HTML gemischt werden, deshalb verwende ich diese Lösung. Für mich funktioniert es vorerst gut.
Idee : Sie könnten es komplizierter machen, indem Sie verschlüsselte Informationen in den
data
Attributen bereitstellen und diese im JS entschlüsseln. Dies geschieht einfach durch Ersetzen oder Umkehren von Buchstaben.HTML :
JS :
Probieren Sie es aus: http://jsfiddle.net/x6g9L817/
quelle
Was ist mit HTML_CHARACTER?:
Ausgänge
quelle
Hier ist eine einfache Lösung für dieses Problem:
quelle
Die Antwort von ofaurax gefällt mir am besten, aber ich würde sie für eine etwas verstecktere E-Mail ändern:
quelle
Ich muss nur eine andere Antwort geben. Ich habe mir gerade etwas ausgedacht, mit dem es Spaß macht, zu spielen.
Ich fand heraus, dass in vielen gängigen Zeichentabellen die Buchstaben @ und az mehrmals vorkommen. Sie können die ursprünglichen Zeichen den neuen Zuordnungen zuordnen und es Spam-Bots erschweren, herauszufinden, um welche E-Mail es sich handelt.
Wenn Sie die Zeichenfolge durchlaufen und den Zeichencode eines Buchstabens abrufen, dann 65248 hinzufügen und eine HTML-Entität basierend auf der Nummer erstellen, erhalten Sie eine lesbare E-Mail-Adresse.
Hier ist eine funktionierende Geige: http://jsfiddle.net/EhtSC/8/
Sie können diesen Ansatz verbessern, indem Sie einen vollständigeren Satz von Zuordnungen zwischen Zeichen erstellen, die gleich aussehen. Wenn Sie beispielsweise die E-Mail in den Editor kopieren / einfügen, erhalten Sie viele Felder.
Um einige Probleme mit der Benutzererfahrung zu lösen, habe ich die E-Mail als Link erstellt. Wenn Sie darauf klicken, werden die Zeichen wieder ihren Originalen zugeordnet.
Um dies zu verbessern, können Sie bei Bedarf komplexere Zeichenzuordnungen erstellen. Wenn Sie mehrere Zeichen finden, die beispielsweise anstelle von 'a' verwendet werden können, können Sie diese nicht zufällig zuordnen.
Wahrscheinlich nicht der sicherste Ansatz aller Zeiten, aber ich hatte wirklich Spaß daran herumzuspielen: D.
quelle