2010-09-08 9 views
9

Wie verhindern Sie, dass E-Mails von Webseiten mit E-Mail-Spidern erfasst werden? Erhöht mailto: Verknüpfung sie die Wahrscheinlichkeit, dass sie abgeholt werden? Ist die URL-Codierung nützlich?Schutz von E-Mail-Adressen vor Spam-Bots/Web-Crawlern

Offensichtlich ist die beste Gegenmaßnahme, nur E-Mail-Adressen für eingeloggte Benutzer anzuzeigen oder ein Kontaktformular anstelle einer E-Mail-Adresse anzugeben. Was aber ist bei rein clientseitigen Lösungen verfügbar?

+0

Für den Teil Lösungen, siehe: http: // Stackoverflow.com/questions/308772/what-are-some-ways-to-protect-emails-on-websites-from-spambots –

+0

Ich bin mir nicht sicher, ob die Verschleierung von E-Mails eine so großartige Lösung ist (wie in @ Yis Kommentar oben angegeben) Aber @James Black hat Recht, wenn immer möglich, ein E-Mail-Formular zu verwenden und serverseitigen Code zu verwenden, um die Nachricht zu verarbeiten –

Antwort

1

Jahre später, habe ich folgende jQuery für eine andere Website erstellt:

$(".email").each(function() { 
    $(this).html($(this).html().replace("...", "@").replace(/\.\.\./g, ".")); 
    $(this).attr("href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".")); 
}); 

E-Mails werden dann geschrieben als:

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a> 

Es ist nicht perfekt aber es ist sehr einfach und scheint die meisten E-Mail-Harvester zu durchkreuzen. Der Vorteil dieser Methode ist, dass jemand, der kein JavaScript verwendet, wahrscheinlich herausfinden kann, was die tatsächliche E-Mail-Adresse ist.


Überprüfen Sie diese study on various email obfuscation methods.

2

Ich neige dazu, eine mailto zu vermeiden, da es es zu einfach für Menschen macht, E-Mail-Adressen zu ernten.

Wenn Sie Kontaktseiten auf Ihrer Website haben, dann haben Sie einfach ein Formular, und wenn sie Ihren serverseitigen Code und verwenden Sie die entsprechende E-Mail-Adresse.

Wenn Sie in der Lage sein müssen, die Adressen anderer Personen verfügbar zu haben, verwenden Sie Nummern, Namen, Benutzernamen und eine Möglichkeit, sie zu identifizieren.

Wenn Sie nur eine E-Mail-Adresse in einem Bereich haben, wird es wahrscheinlich abgeholt, auch wenn Sie versuchen, es zu verstecken, da diese Programme sehr komplex sein können.

Wie bei den meisten Geheimnissen, wenn Sie nicht wollen, dass andere sie bekommen, legen Sie sie nicht auf die Seite.

+0

Die E-Mails sind auf der Seite, in '' s. Abgesehen von dem Entfernen der E-Mail-Adressen, gibt es nichts kann tun, um die Wahrscheinlichkeit zu verringern, dass sie von email Spinnen aufgehoben werden? – Zaz

5

Die meisten E-Mail-Spinnen haben keine Javascript-Interpreter, also wenn Sie die mailto: wirklich brauchen, können Sie sie mit Javascript injizieren ... stellen Sie einfach sicher, dass die Adresse im Javascript irgendwie, z.

myLink.href='mai'+'lto:'+'bob' 
      +'@' 
      +'example.com'; 

Wenn Sie die E-Mail-Adresse auf der Seite angezeigt werden müssen, eine gemeinsame Lösung ist, ein Bild mit so etwas wie php gd zu erzeugen (obwohl die Javascript-Injektion sollte dies auch ok arbeiten).

Die Idee ist, die E-Mail-Adressen aus dem HTML zu entfernen und sie mit Javascript zu injizieren. Auf diese Weise erscheint die E-Mail-Adresse nicht in ihrer ursprünglichen Form in irgendeinem der HTTP-Datenströme, was die Spinne betrachtet.

+0

Danke, das ist eine ziemlich kluge Art, es zu tun. – Zaz

+0

Dann müssen Sie Javascript benötigen, um diese Seite zu benutzen, die Ihre Benutzer verringern kann. –

1

Normalerweise teile ich sie in einzelne Teile auf und kombiniere sie dann mit Javascript neu. Das letzte Javascript macht ein document.write, um den HTML-Code auszugeben.

dh

var mail = "mailto"; 
var namepart = "test.user"; 
var domainpart = "example"; 
var tld = "com"; 
var address = namepart + "@" + domainpart + "." + tld; 
document.write("<a href=" + mail + ":" + address + '">' + address + "</a>";