Frage

Wenn auf einer Webseite E-Mail-Adressen getätigt haben Sie sie als Text wie folgt platzieren:

joe.somebody@company.com

oder einen cleveren Trick verwenden, um zu versuchen und den E-Mail-Adresse Mähdrescher Bots zu täuschen? Zum Beispiel:

HTML-Escape-Zeichen:

joe.somebody@company.com

Javascript Decrypter:

function XOR_Crypt(EmailAddress)
{
    Result = new String();
    for (var i = 0; i < EmailAddress.length; i++)
    {
        Result += String.fromCharCode(EmailAddress.charCodeAt(i) ^ 128);
    }
    document.write(Result);
}

XOR_Crypt("êïå®óïíåâïäùÀãïíðáîù®ãïí");

Mensch Decode:

joe.somebodyNOSPAM@company.com

joe.somebody AT company.com

Was tun Sie oder stört Sie auch?

War es hilfreich?

Lösung

ich im Allgemeinen nicht stören. Früher habe ich auf einer Mailing-Liste sein, die jeden Tag mehrere Tausend Spams bekam. Unser Spam-Filter (.spamassassin) lassen vielleicht 1 oder 2 pro Tag durch. Mit Filter so gut, warum es schwierig für berechtigte Personen, die Sie kontaktieren?

Andere Tipps

Erfinde deine eigenen verrückten E-Mail-Adresse Verschleierung Schema. Spielt keine Rolle, was es ist, wirklich, so lange, wie es einem der allgemein bekannten Verfahren nicht zu ähnlich ist.

Das Problem ist, dass es wirklich keine gute Lösung ist, sie alle entweder relativ einfach sind, zu umgehen, oder eher irritierend für den Anwender. Wenn irgendeine Methode weit verbreitet wird, dann jemand wird einen Weg finden, um ihn herum.

Also anstatt die Suche nach der One True E-Mail-Adresse Verschleierungstechnik, kommt mit Ihrem eigenen. Zählen Sie auf der Tatsache, dass diese bieten Autoren kümmern sich nicht genug über Ihre Website zu sitzen um etwas zu schreiben Ihren leicht verrückt Rendering-Text-mit-css-und-Element-Grenzen zu umgehen oder Ihre völlig bizarr, leicht geknackt Javascript-Verschlüsselung . Es spielt keine Rolle, wenn es trivial ist, wird niemand es die Mühe nur versuchen zu umgehen, so dass sie Sie Spam können.

Ich habe geschrieben eine Encoder ( Quelle ), die alle Arten von Parsing-Tricks verwendet, die ich denken konnte ( verschiedene Arten von HTML-Entitäten, die URL-Codierung, Kommentare, mehrzeilige Attribute, weiche Bindestriche, nicht offensichtliche Struktur mailto: URL, etc.)

Es ist noch nicht alle Vollernter, aber OTOH es ist völlig standardkonform und transparent für die Benutzer.

Ein weiterer IMHO guter Ansatz (die Sie zusätzlich zu heikel Codierung verwenden) ist entlang der Linien von:

<a href="mailto:userhatestogetspam@example.com" 
   onclick="this.href=this.href.replace(/hatestogetspam/,'')">

Sie können Ihre E-Mail-Adresse mit reCAPTCHA schützen, bieten sie einen kostenlosen Service, damit die Menschen ein CAPTCHA eingeben müssen (Completely Automated öffentlichen Turing-Test Neben Computer und Menschen sagen) Ihre E-Mail zu sehen: https://www.google.com/recaptcha/admin#mailhide

würde ich nicht stören - es den SPAM-Krieg auf der falschen Ebene kämpft. Insbesondere für Unternehmen Web-Sites ich denke, es sieht die Sache sehr unprofessionell macht, wenn Sie etwas anderes als den gerade Text auf der Seite mit einem Mailto-Hyperlink hat.

Es gibt so viel Spam herumfliegen, die Sie ohnehin gute Filterung benötigen, und jeder bot am Ende wird das Verständnis alle gängigen Tricks trotzdem.

HTML:

<a href="#" class="--mailto--john--domain--com-- other classes goes here" />

Sie JavaScript, um unter Verwendung von jQuery :

// match all a-elements with "--mailto--" somehere in the class property
$("a[class*='--mailto--']").each(function ()
{
    /*
    for each of those elements use a regular expression to pull
    out the data you need to construct a valid e-mail adress
    */
    var validEmailAdress = this.className.match();

    $(this).click(function ()
    {
        window.location = validEmailAdress;
    });
});

ich nicht stören. Sie werden nur anspruchsvollen Anwender ärgern und ungekünstelt Benutzer verwirren. Wie andere gesagt haben, Gmail bietet sehr effektive Spam-Filter für eine persönliche / Small Business Domain und Corporate Filter sind in der Regel auch sehr gut.

Antwort von mir auf eine ähnliche Frage:

  

Ich verwende eine sehr einfache Kombination von CSS und jQuery, die die anzeigt   E-Mail-Adresse korrekt an den Benutzer und funktioniert auch, wenn der Anker   geklickt haben:

     

HTML:

<a href="mailto:me@example.spam" id="lnkMail">moc.elpmaxe@em</a>
     

CSS:

#lnkMail {
  unicode-bidi: bidi-override;
  direction: rtl;
}
     

jQuery:

$('#lnkMail').hover(function(){
  // here you can use whatever replace you want
  var newHref = $(this).attr('href').replace('spam', 'com');
  $(this).attr('href', newHref);
});
     

Hier ist ein funktionierendes Beispiel.

Der einzige sicherste Weg ist natürlich nicht die E-Mail-Adresse auf Web-Seite an erster Stelle zu setzen.

Verwenden Sie stattdessen ein Kontaktformular. Setzen Sie alle Ihre E-Mail-Adressen in eine Datenbank, und erstellen Sie ein HTML-Formular (Subjekt, Körper, von ...), die den Inhalt der E-Mail vor, dass der Benutzer in Form füllt (zusammen mit einem ID oder Namen, der verwendet wird, Nachschlag dass E-Mail-Adresse in Ihrer Datenbank Person) zu einem Server-Seite Skript, das dann eine E-Mail an die angegebenen Person sendet. Zu keiner Zeit ist die E-Mail-Adresse ausgesetzt. Sie werden wahrscheinlich irgendeine Form von CAPTCHA implementieren möchten Spambots auch abzuschrecken.

Versuchen Sie, einen E-Mail-Symbol-Generator. http://services.nexodyne.com/email/

Natuerlich gibt es noch einige OCR-Bots, die diese erhalten könnte ..

Ich mache mein whateverDOC@whatever.com und dann daneben I „Entfernen Sie die Großbuchstaben“

schreiben

Google Mail, die frei ist hat einen fantastischen Spam-Filter.

Wenn Sie nicht möchten, dass Google Mail direkt verwenden können Sie die E-Mail an Google Mail und Google Mail-Weiterleitung zu verwenden, um Sie zurück zu senden, nachdem sie durch ihre Spam-Filter gegangen ist.

In einer komplexeren Situation, wenn Sie zeigen müssen ein @ business.com adressieren Sie die public@business.com zeigen konnten, und haben alle diese E-Mail an ein Google Mail-Konto weitergeleitet, die dann nach vorne auf den realen @ business zurück. com

Ich denke, es ist nicht eine direkte Lösung auf Ihre Frage, aber es könnte helfen. Google Mail ist kostenlos und mit einer solchen guten SPAM-Filter macht es eine sehr kluge Wahl IMHO verwendet wird.

Ich erhalte etwa 100 Spam pro Tag in meinem Google Mail-Konto, aber ich kann das letzte Mal einer von ihnen bekam zu meinem Posteingang nicht erinnern.

Um es zusammenzufassen, verwenden Sie ein guter Spam-Filter, ob Google Mail oder ein anderes. der Benutzer, der die E-Mail-Adresse erneut eingeben oder ändern, das angezeigt wird, ist wie DRM vor Piraterie zu schützen. Putting die Belastung für den „guten“ Mann soll nicht der Weg, um etwas zu tun zu gehen. :)

Für Ihre eigene E-Mail-Adresse würde ich empfehlen, zu viel über es nicht besorgniserregend. Wenn Sie eine Notwendigkeit, Ihre E-Mail-Adresse zur Verfügung, um Tausende von Benutzern zu machen, dann würde ich empfehlen, entweder mit einer gmail-Adresse (Vanille oder über Google Apps) oder einen hohen Qualität Spam-Filter.

Wenn jedoch andere Benutzer E-Mail-Adressen auf Ihrer Webseite anzuzeigen denke ich ein gewisses Maß an Sorgfalt erforderlich. Zum Glück, ein Blogger namens Silvan Mühlemann hat all die schwierige Arbeit für Sie . Er testete verschiedene Methoden der Verschleierung über einen Zeitraum von 1,5 Jahren und bestimmt, die besten, die meisten von ihnen CSS oder JavaScript-Tricks beinhalten, die die Adresse erlauben im Browser präsentiert korrekt zu sein, sondern automatisiert Schaber verwirren.

Ein weiterer, möglicherweise einzigartig, Technik könnte sein, mehrere Bilder und ein paar Klartextbuchstaben zu verwenden, um die Adresse angezeigt werden soll. Das könnte die Bots verwirren.

Ein Skript, die E-Mail-Adressen zu png-Dateien speichert wäre eine sichere Lösung (wenn Sie genügend Platz haben, und Sie dürfen Bilder in Ihrer Seite einbinden)

Dies ist, was wir verwenden (VB.NET):

Dim rxEmailLink As New Regex("<a\b[^>]*mailto:\b[^>]*>(.*?)</a>")
Dim m As Match = rxEmailLink.Match(Html)
While m.Success
    Dim strEntireLinkOrig As String = m.Value
    Dim strEntireLink As String = strEntireLinkOrig
    strEntireLink = strEntireLink.Replace("'", """") ' replace any single quotes with double quotes to make sure the javascript is well formed
    Dim rxLink As New Regex("(<a\b[^>]*mailto:)([\w.\-_^@]*@[\w.\-_^@]*)(\b[^>]*?)>(.*?)</a>")
    Dim rxLinkMatch As Match = rxLink.Match(strEntireLink)
    Dim strReplace As String = String.Format("<script language=""JavaScript"">document.write('{0}{1}{2}>{3}</a>');</script>", _
                RandomlyChopStringJS(rxLinkMatch.Groups(1).ToString), _
                ConvertToAsciiHex(rxLinkMatch.Groups(2).ToString), _
                rxLinkMatch.Groups(3), _
                ConvertToHtmlEntites(rxLinkMatch.Groups(4).ToString))
    Result = Result.Replace(strEntireLinkOrig, strReplace)
    m = m.NextMatch()
End While

und

    Public Function RandomlyChopStringJS(ByVal s As String) As String
        Dim intChop As Integer = Int(6 * Rnd()) + 1
        Dim intCount As Integer = 0
        RandomlyChopStringJS = ""
        If Not s Is Nothing AndAlso Len(s) > 0 Then
            For Each c As Char In s.ToCharArray()
                If intCount = intChop Then
                    RandomlyChopStringJS &= "'+'"
                    intChop = Int(6 * Rnd()) + 1
                    intCount = 0
                End If
                RandomlyChopStringJS &= c
                intCount += 1
            Next
        End If
    End Function

Wir überschreiben Render und den ausgehenden HTML durch diese ausgeführt werden, bevor sie die Tür erlischt. Dies macht E-Mail-Adressen, die normalerweise zu einem Browser machen, aber wie dies in der Quelle aussehen:

<script language="JavaScript">document.write('<a '+'clas'+'s='+'"Mail'+'Link'+'" hr'+'ef'+'="ma'+'ilto:%69%6E%66%6F%40%62%69%63%75%73%61%2E%6F%72%67">&#105;&#110;&#102;&#111;&#64;&#98;&#105;&#99;&#117;&#115;&#97;&#46;&#111;&#114;&#103;</a>');</script>

Natürlich nicht narrensicher, aber hoffentlich verkürzt sich auf eine bestimmte Menge an Ernte nach unten, ohne die Dinge hart für die Besucher zu machen.

Es hängt davon ab, was genau Ihre Bedürfnisse sind. Für die meisten Websites, mit denen ich arbeite, habe ich es viel nützlicher zu setzen in einer „Kontakt mit mir / wir“ Form gefunden, die an eine E-Mail aus dem System sendet, wer kontaktiert werden muss. Ich weiß, dass dies nicht genau die Lösung, die Sie suchen, aber es vollständig gegen Ernte schützt und bisher habe ich noch nie über ein Formular gesendet gesehen Spam ähnlich. Es wird passieren, aber es ist sehr selten, und Sie werden nie geerntet.

Dies gibt Ihnen auch die Möglichkeit, die Nachrichten zu protokollieren vor dem Senden sie Ihnen einen zusätzlichen Schutz geben gegen einen Kontakt zu verlieren, wenn Sie dies wünschen.

Spam-Bots werden ihre eigenen Javascript und CSS-Motoren im Laufe der Zeit, so dass ich glaube, Sie nicht in diese Richtung aussehen sollte.

Option 1: Split E-Mail-Adresse in mehrere Teile und ein Array in JavaScript erstellen aus diesen Teilen. kommt nächster diese Teile in der richtigen Reihenfolge und verwenden Sie die .innerHTML Eigenschaft, um die E-Mail-Adresse der Web-Seite hinzuzufügen.

 <span id="email">  </span>   // blank tag

 <script>
 var parts = ["info", "XXXXabc", "com", "&#46;", "&#64;"];
 var email = parts[0] + parts[4] + parts[1] + parts[3] + parts[2];
 document.getElementById("email").innerHTML=email; 
 </script>

Option 2: Bild verwendet anstelle von E-Mail-Text

Bild Schöpfer Webseite von Text: http://www.chxo.com/labelgen/

Option 3: "" Wir können anstelle von "@" verwenden und DOT statt

heißt:

 info(AT)XXXabc(DOT)com 

I codiert nur die folgenden. Sie wissen nicht, ob es gut ist, aber es ist besser als nur die E-Mail im Klartext zu schreiben. Viele Roboter täuschen, aber nicht alle von ihnen.

<script type="text/javascript">
    $(function () {
        setTimeout(function () {
            var m = ['com', '.', 'domain', '@', 'info', ':', 'mailto'].reverse().join('');

            /* Set the contact email url for each "contact us" links.*/
            $('.contactUsLink').prop("href", m);
        }, 200);
    });
</script>

Wenn der Roboter dies löst dann gibt es keine Notwendigkeit, wie „if (1 == 1‚@‘?:‚‘)“ Mehr „einfache Logik“ Code hinzufügen oder Hinzufügen der Array-Elemente in einer anderen Reihenfolge, da der Roboter gerade evals der Code trotzdem.

Font-awesome funktioniert!

<link rel="stylesheet" href="path/to/font-awesome/css/font-awesome.min.css">

<p>myemail<i class="fa fa-at" aria-hidden="true"></i>mydomain.com</p>

http://fontawesome.io/

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