it-swarm.com.de

Effektive Methode, um E-Mails vor Spam-Bots zu verbergen

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?

180
abatishchev

Dies ist die von mir verwendete Methode mit einem serverseitigen Include, z. <!--#include file="emailObfuscator.include" --> woher emailObfuscator.include enthält Folgendes:

<!-- // http://lists.evolt.org/archive/Week-of-Mon-20040202/154813.html -->
<script type="text/javascript">
    function gen_mail_to_link(lhs,rhs,subject) {
        document.write("<a href=\"mailto");
        document.write(":" + lhs + "@");
        document.write(rhs + "?subject=" + subject + "\">" + lhs + "@" + rhs + "<\/a>");
    }
</script>

Um eine Adresse anzugeben, benutze ich JavaScript:

<script type="text/javascript"> 
    gen_mail_to_link('john.doe','example.com','Feedback about your site...');
</script>
<noscript>
  <em>Email address protected by JavaScript. Activate JavaScript to see the email.</em>
</noscript>

Da ich seit 2005 E-Mails über Google Mail erhalte, ist Spam so gut wie kein Thema. Daher kann ich nicht darüber sprechen, wie effektiv diese Methode ist. Vielleicht möchten Sie lesen diese Studie (obwohl es alt ist), dass diese Grafik erzeugt:

enter image description here

95
Fuhrmanator

Schauen Sie sich auf diese Weise an, ziemlich clever und mit CSS.

[~ # ~] CSS [~ # ~]

span.reverse {
  unicode-bidi: bidi-override;
  direction: rtl;
}

[~ # ~] html [~ # ~]

<span class="reverse">[email protected]</span>

Das obige CSS überschreibt dann die Leserichtung und präsentiert dem Benutzer den Text in der richtigen Reihenfolge.

Ich hoffe es hilft

Prost

83
roundcrisis

Arbeiten mit Inhalten und Attributen in CSS:

.cryptedmail:after {
  content: attr(data-name) "@" attr(data-domain) "." attr(data-tld); 
}
<a href="#" class="cryptedmail"
   data-name="info"
   data-domain="example"
   data-tld="org"
   onclick="window.location.href = 'mailto:' + this.dataset.name + '@' + this.dataset.domain + '.' + this.dataset.tld; return false;"></a>

Wenn Javascript deaktiviert ist, funktioniert nur das Klickereignis nicht. E-Mails werden weiterhin angezeigt.

Ein weiterer interessanter Ansatz (zumindest ohne Klickereignis) wäre, die Markierung von rechts nach links zu verwenden, um die Schreibrichtung zu überschreiben. mehr dazu: https://en.wikipedia.org/wiki/Right-to-left_mark

80
cyptus

Ich sehe das ganz anders. Ich benutze dafür MailHide .

MailHide ist ein System von Google, bei dem der Benutzer einen reCAPTCHA-Test durchführen muss, um die E-Mail dann für ihn freizugeben.

52
tvanfosson

Nicht meine Idee ursprünglich, aber ich kann den Autor nicht finden:

<a href="mailto:[email protected]"
    onmouseover="this.href=this.href.replace(/x/g,'');">link</a>

Fügen Sie so viele X hinzu, wie Sie möchten. Es funktioniert perfekt zum Lesen, Kopieren und Einfügen und kann nicht von einem Bot gelesen werden.

48
Andrew Swift

Ich denke, die einzige narrensichere Methode, die Sie haben können, ist das Erstellen einer Kontaktseite, die ein Formular ist, 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. Das 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 in 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. Außerdem können Sie auf diese Weise anonyme Kommentare usw. an Sie senden. Achten Sie lediglich darauf, Ihr Formular mit einem Anti-Bot-Schema (z. B. einem Captcha) zu schützen. Es gibt viele von ihnen hier auf SO diskutiert.

16
rmeador

Siehe E-Mail-Adressen auf einer Webseite vor Bots schützen?

Mir gefällt, wie Facebook und andere ein Bild Ihrer E-Mail-Adresse wiedergeben.

Ich habe auch The Enkoder in der Vergangenheit verwendet - dachte, es war sehr gut, um ehrlich zu sein!

15
Galwegian

Ich weiß, meine Antwort wird nicht vielen gefallen, aber bitte beachten Sie die hier aufgeführten Punkte, bevor Sie mit dem Daumen nach unten greifen.

Alles, was leicht maschinenlesbar ist, wird von den Spammern leicht maschinenlesbar sein. Obwohl ihre Handlungen uns dumm erscheinen, sind sie keine dummen Leute. Sie sind innovativ und einfallsreich. Sie verwenden nicht nur Bots, um E-Mails zu sammeln, sie verfügen über eine Vielzahl von Methoden und bezahlen darüber hinaus einfach für gute, frische E-Mail-Listen. Das bedeutet, dass sie weltweit Tausende von Black-Hat-Hackern dazu gebracht haben, ihre Arbeit auszuführen. Leute, die bereit sind, Malware zu programmieren, die die Bildschirme der Browser anderer Leute kratzt, was schließlich jede Methode, die Sie erreichen möchten, unbrauchbar macht. Dieser Thread wurde bereits von 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 irgendwann versuchen, Ihre Zeit zu sparen, sondern die Zeit anderer. Aus diesem Grund sollten Sie hier etwas mehr Zeit aufwenden. Es gibt keine einfach auszuführende Wundermittel, die funktionieren würden. Wenn Sie in einem Unternehmen arbeiten, das 100 E-Mails von Personen auf der Website veröffentlicht, und Sie 1 Spam-E-Mail pro Tag und Person reduzieren können, sprechen wir von 36.500 Spam-E-Mails pro Jahr. Wenn das Löschen einer solchen E-Mail durchschnittlich 5 Sekunden dauert, sprechen wir von 50 Arbeitsstunden pro Jahr. Ganz zu schweigen von dem reduzierten Ärger. Warum also nicht ein paar Stunden damit verbringen?

Es sind nicht nur Sie und die Menschen, die die E-Mail erhalten, die die Zeit für eine Bereicherung halten. Daher müssen Sie eine Möglichkeit finden, die E-Mail-Adressen so zu verschleiern, dass es sich nicht lohnt, 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 von neuen E-Mails. Und für sie werden sie Geld bekommen.

Also, mach weiter und programmiere deine eigene Methode. Dies ist ein seltener Fall, in dem es sich auszahlt, das Rad neu zu erfinden. Verwenden Sie eine Methode, die nicht maschinenlesbar ist und die vorzugsweise eine gewisse Benutzerinteraktion erfordert, ohne die Benutzererfahrung zu beeinträchtigen.

Ich habe ungefähr 20 Minuten damit verbracht, ein Beispiel für das zu schreiben, was ich meine. In diesem Beispiel habe ich KnockoutJS verwendet, weil es mir gefällt und ich weiß, dass Sie es wahrscheinlich nicht selbst verwenden werden. Aber es spielt sowieso keine Rolle. Es ist eine kundenspezifische Lösung, die nicht weit verbreitet ist. Das Knacken ist keine Belohnung dafür, 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 einen guten Code. Aber nur ein kurzes Beispiel für Code, den die Maschine nur schwer herausfinden kann, werden hier sogar E-Mails verarbeitet. Und selbst wenn es möglich wäre, würde es sich nicht auszahlen, in großem Maßstab zu arbeiten.

Und ja, ich weiß, dass es auf IE = lte8 nicht funktioniert, weil 'Eigenschaftsattribute' mit undefinierter oder Nullreferenz nicht abgerufen werden können ', aber es ist mir einfach egal, weil es nur so ist Eine Demo der Methode, nicht die eigentliche Implementierung und nicht für die eigentliche Produktion vorgesehen. Sie können Ihre eigene, coolere, technisch solideere usw. programmieren.

Oh, und nenne niemals eine Mail oder E-Mail in HTML oder Javascript. Es ist einfach viel zu einfach, das DOM und das Fensterobjekt für Mail oder E-Mail zu kratzen und zu überprüfen, ob es etwas enthält, das mit einer E-Mail übereinstimmt. Aus diesem Grund möchten Sie keine Variablen, die E-Mails in voller Form enthalten, und Sie möchten, dass der Benutzer mit der Seite interagiert, bevor Sie solche Variablen zuweisen. Wenn Ihr JavaScript-Objektmodell E-Mail-Adressen im DOM-Status "Bereit" enthält, setzen Sie sie den Spammern aus.

Der HTML:

<div data-bind="foreach: contacts">
    <div class="contact">
        <div>
            <h5 data-bind="text: firstName + ' ' + lastName + ' / ' + department"></h5>
            <ul>
                <li>Phone: <span data-bind="text: phone"></span></li>
                <li><a href="#999" data-bind="click:$root.reveal">E-mail</a> <span data-bind="visible: $root.msgMeToThis() != ''"><input class="merged" data-bind="value: mPrefix" readonly="readonly" /><span data-bind="text: '@' + domain"></span></span></li>
            </ul>
        </div>
    </div>
</div>

Der JS

function ViewModel(){
    var self = this;

    self.contacts = ko.observableArray([
        { firstName:'John', mPrefix: 'john.doe', domain: 'domain.com', lastName: 'Doe', department: 'Sales', phone: '+358 12 345 6789' },
        { firstName:'Joe', mPrefix: 'joe.w', domain: 'wonder.com', lastName: 'Wonder', department: 'Time wasting', phone: '+358 98 765 4321' },
        { firstName:'Mike', mPrefix: 'yo', domain: 'rappin.com', lastName: 'Rophone', department: 'Audio', phone: '+358 11 222 3333' }
    ]);
    self.msgMeToThis = ko.observable('');
    self.reveal = function(m, e){
        var name = e.target.attributes.href.value;
        name = name.replace('#', '');
        self.msgMeToThis(name);
    };
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
10

Wenn Sie PHP-Unterstützung haben, können Sie Folgendes tun:

<img src="scriptname.php">

Und die scriptname.php:

<?php
header("Content-type: image/png");
// Your email address which will be shown in the image
$email    =    "[email protected]";
$length    =    (strlen($email)*8);
$im = @ImageCreate ($length, 20)
     or die ("Kann keinen neuen Gd-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255); // White: 255,255,255
$text_color = ImageColorAllocate ($im, 55, 103, 122);
imagestring($im, 3,5,2,$email, $text_color);
imagepng ($im);
?>
10
Matias

Sie können versuchen, Zeichen mit HTML-Entitäten in hexa (Beispiel: & # x40 für @) auszublenden. Dies ist eine praktische Lösung, da sie von einem korrekten Browser übersetzt wird 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, mit Javascript einen Teil der Adresse zusammenzustellen und die Adresse spontan zu dekodieren. Der Nachteil ist, dass ein Javascript-deaktivierter Browser Ihre Adresse nicht anzeigt.

Die effektivste Lösung ist ein Bild verwenden, aber der Benutzer muss die Adresse nur von Hand kopieren.

Ihre Lösung ist ziemlich gut, da Sie nur für Benutzer, die Javascript deaktiviert haben, einen Nachteil hinzufügen (manuell das @ schreiben). Sie können auch sicherer sein mit:

onclick="this.href='mailto:' + 'admin' + '&#x40;' + 'domain.com'"
7
ofaurax

Eine meiner Lieblingsmethoden ist das Verschleiern der E-Mail-Adresse mit PHP. Ein klassisches Beispiel ist das Konvertieren der Zeichen in HEX-Werte wie folgt:

function myobfiscate($emailaddress){
 $email= $emailaddress;                
 $length = strlen($email);                         
 for ($i = 0; $i < $length; $i++){                
 $obfuscatedEmail .= "&#" . ord($email[$i]).";";
 }
 echo $obfuscatedEmail;
}

Und dann werde ich es in meinem Markup einfach so nennen:

<a href="mailto:<?php echo myobfiscate('[email protected]')" title="Email me!"><?php echo myobfiscate('[email protected]');</a>

Dann prüfen Sie Ihre Quelle, Sie werden angenehm überrascht sein!

7
SimonDowdles

Spambots werden dies nicht interpretieren, da es sich um eine weniger bekannte Methode handelt :)

Definieren Sie zunächst die CSS:

email:before {
    content: "admin";
}

email:after {
    content: "@example.com";
}

Fügen Sie nun an jeder Stelle, an der Sie Ihre E-Mail anzeigen möchten, einfach den folgenden HTML-Code ein:

<div id="email"></div>

Und tada!

5
Aaron Esau

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 darüber bewegt wird:

HTML:

<a href="mailto:[email protected]" id="lnkMail">[email protected]</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.

4
Sergiu

! - Wenn Sie dies als Referenz hinzufügen, wissen Sie nicht, wie veraltet die Informationen sein könnten, aber es werden einige einfache Lösungen beschrieben, für die kein Skript erforderlich ist

Nachdem ich selbst danach gesucht habe, bin ich auf diese Seite gestoßen, 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:

<bdo dir="rtl">[email protected]</bdo>
Result : [email protected]

Der gleiche Effekt mit CSS

CSS:
.reverse { unicode-bidi:bidi-override; direction:rtl; }
HTML:
<span class="reverse">[email protected]</span>
Result : [email protected]

Wenn Sie dies mit einer der zuvor genannten Methoden kombinieren, ist dies möglicherweise sogar effektiver

3
Johann de Vries

Eine einfache Lösung besteht darin, HTML-Entitäten anstelle von tatsächlichen Zeichen zu verwenden. Beispielsweise wird "[email protected]" konvertiert in:

<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;">email me</A>
3
Romain Linsolas

Hier ist meine Arbeitsversion:


Erstellen Sie irgendwo einen Container mit einem Fallback-Text:

<div id="knock_knock">Activate JavaScript, please.</div>

Fügen Sie am unteren Rand des DOM (mit dem Rendering) das folgende Snippet hinzu:

<script>
  (function(d,id,lhs,rhs){
    d.getElementById(id).innerHTML = "<a rel=\"nofollow\" href=\"mailto"+":"+lhs+"@"+rhs+"\">"+"Mail"+"<\/a>";
  })(window.document, "knock_knock", "your.name", "example.com");
</script>

Es fügt den generierten Hyperlink zum angegebenen Container hinzu:

<div id="knock_knock"><a rel="nofollow" href="[email protected]">Mail</a></div>

Außerdem ist hier eine verkleinerte Version:

<script>(function(d,i,l,r){d.getElementById(i).innerHTML="<a rel=\"nofollow\" href=\"mailto"+":"+l+"@"+r+"\">"+"Mail"+"<\/a>";})(window.document,"knock_knock","your.name","example.com");</script>
3
Darius M.

Die beste Methode, E-Mail-Adressen zu verbergen, ist nur dann sinnvoll, wenn der Bot-Programmierer diese "Kodierung" entdeckt und einen Entschlüsselungsalgorithmus implementiert.

Die JavaScript-Option funktioniert nicht lange, da viele Crawler JavaScript interpretieren.

Es gibt keine Antwort, imho.

2
guerda

Es gibt wahrscheinlich Bots, die das [at] und andere Verkleidungen als @ Symbol. Das ist also keine wirklich effektive Methode.

Sicher könnten Sie einige Codierungen wie URL-Codierung oder HTML-Zeichenreferenzen (oder beides) verwenden:

// PHP example
// encodes every character using URL encoding (%hh)
function foo($str) {
    $retVal = '';
    $length = strlen($str);
    for ($i=0; $i<$length; $i++) $retVal.=sprintf('%%%X', ord($str[$i]));
    return $retVal;
}
// encodes every character into HTML character references (&#xhh;)
function bar($str) {
    $retVal = '';
    $length = strlen($str);
    for ($i=0; $i<$length; $i++) $retVal.=sprintf('&#x%X;', ord($str[$i]));
    return $retVal;
}

$email = '[email protected]';
echo '<a href="'.bar('mailto:?to=' . foo(','.$email.'')).'">mail me</a>';

// output
// <a href="&#x6D;&#x61;&#x69;&#x6C;&#x74;&#x6F;&#x3A;&#x3F;&#x74;&#x6F;&#x3D;&#x25;&#x32;&#x43;&#x25;&#x37;&#x35;&#x25;&#x37;&#x33;&#x25;&#x36;&#x35;&#x25;&#x37;&#x32;&#x25;&#x34;&#x30;&#x25;&#x36;&#x35;&#x25;&#x37;&#x38;&#x25;&#x36;&#x31;&#x25;&#x36;&#x44;&#x25;&#x37;&#x30;&#x25;&#x36;&#x43;&#x25;&#x36;&#x35;&#x25;&#x32;&#x45;&#x25;&#x36;&#x33;&#x25;&#x36;&#x46;&#x25;&#x36;&#x44;">mail me</a>

Da es jedoch legal ist, sie zu verwenden, sollte jeder Browser/E-Mail-Client auch diese Codierungen verarbeiten.

2
Gumbo

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 um E-Mails automatisch in SpamSpans umzuwandeln, falls Sie eines benötigen.

2
Roman Starkov

Und meine Funktion. Ich habe es unter Berücksichtigung der Antworten in diesem Thema erstellt.

 function antiboteEmail($email)
 {
        $html = '';

        $email = strrev($email);
        $randId = Rand(1, 500);

        $html .= '<span id="addr-'.$randId.'" class="addr">[turn javascript on to see the e-mail]</span>';
        $html .= <<<EOD
                <script>
                $(document).ready(function(){

                    var addr = "$email";
                    addr = addr.split("").reverse().join("");
                    $("#addr-$randId").html("<a href=\"mailto:" + addr + "\">" + addr + " </a>");
                });
                </script>
EOD;

        return $html;
    }

Es werden zwei Methoden verwendet: von rechts nach links dir und Javascript setzen.

1
webrama.pl

Eine andere Option, ich bevorzuge tolle Symbole

Fa-Implementierung:

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

Mail Adresse:

<a href="mailto:[email protected]"><span class="label">info<i class="fa fa-at"></i>uploadimage.club</span></a>
1
Project Mayhem

Zuerst würde ich sicherstellen, dass die E-Mail-Adresse nur angezeigt wird, wenn Sie Javascript aktiviert haben. Auf diese Weise kann kein einfacher Text ohne Javascript gelesen werden.

Zweitens besteht eine Möglichkeit zum Implementieren einer sicheren Funktion darin, sich vom <button> Etikett. Für dieses Tag muss zwischen den Tags ein Text eingefügt werden, damit es computerlesbar ist. Versuchen Sie stattdessen das <input type="button"> mit einem Javascript-Handler für einen onClick. Verwenden Sie dann alle von anderen erwähnten Techniken, um eine sichere E-Mail-Notation zu implementieren.

Eine andere Option ist die Schaltfläche "Klicken, um die E-Mail-Adresse anzuzeigen". Sobald Sie darauf klicken, wird dies zu einer verschlüsselten E-Mail (die Zeichen in HTML-Codes). Bei einem weiteren Klick wird auf die Funktion 'mailto: email' weitergeleitet

Eine unverschlüsselte Version der letzten Idee mit auswählbaren und nicht auswählbaren E-Mail-Adressen:

<html>
<body>
<script type="text/javascript">
      e1="@domain";
      e2="me";
      e3=".extension";
email_link="mailto:"+e2+e1+e3;
</script>
<input type="text" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="text" onClick="this.value=email;" value="Click for mail-address"/>
<input type="button" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="button" onClick="this.value=email;" value="Click for mail-address"/>
</body></html>

Sehen Sie nach, ob Sie dies möchten, und kombinieren Sie es mit den Ideen anderer. Sie können nie zu sicher sein.

1
xaddict

was ist mit HTML_CHARACTER ?:

joe&#064;mail.com

ausgänge

[email protected]
1
T.Todua

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 es ziemlich paranoid, meine E-Mail-Adresse online zu schützen (UseNet, Web und dergleichen), aber heutzutage vermute ich, dass tatsächlich mehr "mögliche Spam-Ziele" generiert werden, die lokale Teile programmgesteuert mit Domains abgleichen. Ich begründe dies damit, dass ich gelegentlich meine Mailserver-Protokolle durchgesehen habe. Es gibt in der Regel einige Zustellungsversuche für nicht vorhandene Adressen (einschließlich gekürzter Versionen von Spam-Ködern, die ich in den späten 90er-Jahren auf UseNet baumelte, als Adress-Scraping sehr verbreitet war).

1
Vatine

Ich mag es nicht, wenn JavaScript und HTML gemischt werden, deshalb verwende ich diese Lösung. Es funktioniert für mich im Moment gut.

Idee : Sie könnten es komplizierter machen, indem Sie verschlüsselte Informationen in den data- Attributen bereitstellen und diese in der JS entschlüsseln. Dies geschieht einfach durch Ersetzen oder Umkehren von Buchstaben.

[~ # ~] html [~ # ~] :

<span class="generate-email" data-part1="john" data-part2="gmail" data-part3="com">placeholder</span>

[~ # ~] js [~ # ~] :

$(function() {
    $('.generate-email').each(function() {
        var that = $(this);
        that.html(
            that.data('part1') + '@' + that.data('part2') + '.' + that.data('part3')
        );
    });  
});

Probieren Sie es aus: http://jsfiddle.net/x6g9L817/

1
Mr. B.

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 anschließend in der richtigen Reihenfolge und fügen Sie mithilfe der .innerHTML-Eigenschaft die E-Mail-Adresse zur Webseite hinzu.

 <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: Verwenden Sie Bild anstelle von E-Mail-Text

Image Creator Website von Text: http://www.chxo.com/labelgen/

Option 3: Wir können AT anstelle von "@" und DOT anstelle von "."

d.h.

 info(AT)XXXabc(DOT)com 
1
saun4frsh

nachdem ich so viele Techniken verwendet hatte, fand ich einen einfachen und sehr freundlichen Weg, die Bots suchten nach @ Símbolo und kürzlich suchten sie nach [at] und es ist eine Variation, also verwende ich 2 Techniken

  1. ich schreibe meine email auf ein bild wie es die domaintolls benutzen und es funktioniert einwandfrei oder
  2. um das Símbolo (@) durch ein Bild davon zu ersetzen

@ replace und das Bild alt wird alt = "@" sein, 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 nicht so, wie der Code sein wird

<p>myname<img src="http://www.traidnt.net/vb/images/mail2.gif" width="11" height="9" alt="@" />domain.com</p>

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 leicht Rufen Sie die PHP-Funktion mit der spezifischen Mail als Argument auf.

1
Fanky

Ich muss nur eine andere Antwort geben. Ich habe mir gerade etwas ausgedacht, mit dem es Spaß macht, zu spielen.

Ich habe herausgefunden, dass in vielen allgemeinen Zeichentabellen die Buchstaben @ und a-z mehr als einmal vorkommen. Sie können die ursprünglichen Zeichen den neuen Zuordnungen zuordnen und es für Spam-Bots schwieriger machen, herauszufinden, wie die E-Mail lautet.

Wenn Sie die Zeichenfolge durchlaufen und den Zeichencode eines Buchstabens abrufen, dann 65248 hinzufügen und eine HTML-Entität basierend auf der Zahl erstellen, erhalten Sie eine für Menschen lesbare E-Mail-Adresse.

var str = '[email protected]';
str = str.toLowerCase().replace(/[\[email protected]]/gi, function(match, position, str){
    var num = str.charCodeAt(position);
    return ('&#' + (num + 65248) + ';');
});

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 jedoch beispielsweise die E-Mail kopieren/in den Notizblock einfügen, erhalten Sie viele Kästchen.

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 den 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, warum ordnen Sie diese nicht zufällig zu?.

Wahrscheinlich nicht der sicherste Ansatz, aber ich hatte wirklich Spaß daran: D

0

Dies ist wahrscheinlich der beste und einfachste E-Mail-Schutz im Internet. Sehr einfach, aber es hat die Fähigkeit, alle Schnickschnack hinzuzufügen.

E-Mail auf Webseiten schützen

Verwendet JavaScript. Ich benutze es seit Jahren erfolgreich.

0
ITI

Die Antwort von ofaurax gefällt mir am besten, aber ich würde sie ändern, um eine etwas verstecktere E-Mail zu erhalten:

onclick="p1='admin'; p2='domain.com'; this.href='mailto:' + p1 + '& #x40;' + p2"
0
Donny

Hier ist eine einfache Lösung für dieses Problem:

<script type="text/javascript">
$(document).ready(function() {
    str1="mailto:";
    str2="info";
    str3="@test.com";
    $("#email_a").attr("href", str1+str2+str3);

});
</script>

<a href="#" id="email_a"><img src="sample.png"/></a>
0
Haluk