Frage

Duplizieren:

  

Was ist der beste Weg, Spammer bekommen die E-Mail-Adresse von Ihren Mailto-Links zu verhindern? Ich bin unter dem Eindruck, dass Javascript eine Lösung sein könnte. Ich weiß nicht, ob meine aktuelle Lösung narrensicher ist, ist also, warum ich frage.

Hier ist, was ich momentan mache:

<script language="JavaScript"><!--
var name = "emailusername";
var domain = "yahoo.com";
var text = "emailusername@yahoo.com";
document.write('<a href=\"mailto:' + name + '@' + domain + '\">');
document.write(text + '</a>');
// --></script>

Gibt es einen besseren Weg? Ich mag es nicht, dieses Stück Code zu haben, die überall möchte ich einen mailto-Link setzen.

Andere Tipps

Javascript hilft, aber das wird nicht viel helfen. Die E-Mail-Adresse ist noch sichtbar in der HTML-Quelle diese Art von Skript.

Die „beste“ Optionen verwenden clientseitige JavaScript aus Teilen die E-Mail-Adresse zu „bauen“, so dass die gesamten E-Mail-Adresse ist nie sichtbar in der HTML-Quelle in einem Stück. Der Browser bringt es zusammen für Sie auf dem Client.

Eine einfache Lösung:

<script language="JavaScript"><!--
var name = "emailusername";
var domain = "yahoo.com";
document.write('<a href=\"mailto:' + name + '@' + domain + '\">');
document.write(name + '@' + domain + '</a>');
// --></script>

das ist im Grunde die gleichen wie Reed schlägt aber mit Ihnen Code vorhanden ist.

Das ist nicht einmal im Entferntesten ein guter Weg. Spammers wird die ganze Sache und Match-Adressen mit einem regex greifen. Sie werden sich nicht die Mühe für mailto suchen :. Auch jedes Schema Sie mit Javascript denken können, hat bereits gelehrt worden und durch die Spammern begegnet. In der Tat, werden sie wahrscheinlich nur in der Lage sein, die Javascript und erhält die Adresse ausgeführt werden.

Sie können

A) Filter Spam
Verwenden B) ein Formular einzureichen Mail (die die Spammer werden wahrscheinlich immer noch verwenden.)

Sie sind auf dem richtigen Weg, aber irgendwie dort emailusername mit Niederlagen der Zweck (die meisten Spinne Bots nicht die Mühe, den Unterschied zwischen HTML und Script-Code zu machen, und suchen gerade nach etwas, das E-Mail-like erscheint die Seite).

Ich habe von Beweisen gehört, dass einige Spinnen Bots die Fähigkeit haben, jetzt Javascript ausführen kann, und diese Art von Verschleierung von selbst zu lösen.

Es gibt keinen 110% absolut sichere Weg zu verhindern, dass, abgesehen von dummen Tricks, die nur die Verwendung von E-Mail behindern, wie wenn man alle E-Mail-Adressen als Bilder etc.

Mindestens persönlich habe ich angenommen, dass die Adressen zumindest bis zu einem gewissen Grad geerntet werden erhalten. Ich benutze diese kleine php-Funktion html-encode alle E-Mail-Adressen. Auf diese Weise werden sie von allen echten Browsern voll nutzbar sein, aber täuschen die dümmste von Erntemaschinen. Wie ich schon sagte, es ist nicht 110%, aber ich bin zufrieden damit.

function turboencode($s){
    $tempstr = "";
    for($i = 0; $i < strlen($s); $i++){
        $c = substr($s, $i, 1);
        $tempstr .= "&#" . ord($c) . ";";
    }
    return $tempstr;
}

Der beste Weg, die Ernte zu verhindern, ist einfach nicht hat das mailto:. Link überhaupt

Kurz davon gibt es nicht viele Zähler. Dinge wie CSS Inhalte und Bilder wurden ausprobiert und umgangen und JavaScript ist eine auf halbem Weg nicht-Lösung (die es nicht funktioniert zu sagen ist.)

Eine mögliche Zähler Verschleierung: In Unsinn Ihre Adresse wie folgt aus:

mailNO`at`SPAMyahoo`dot`com

Und die meisten automatisierten Harvester wird (zunächst) haben einige Probleme es zu erkennen. Alternativ Dinge wie Kommentare könnten verwendet werden, die meisten Mähdrescher zu verwirren. (RFC 822 beschreibt die vollständige Syntax von E-Mail-Adressen, die Kommentare als Teil der Adress-Spezifikation enthält.)

Ein weiterer Zähler ist ein Formular mit einem CAPTCHA irgendeiner Art zu verwenden.

Keiner von ihnen sind voll wirksam.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top