Thomas W: Ansätze zum Schutz vor Spamrobotern (Achtung, lang!)

Hallo zusammen,

da ich gerade ein Redaktionssystem in PHP für mich schreibe, habe ich überlegt, wie man E-Mail Adressen im Quelltext vor Spamrobotern schützen kann. Unicode-Verschlüsselung hilft wohl nichts mehr, da die Spamroboter mittlerweile "schlau" genug dafür sind. Freshmeat wiederum dürften die Spamroboter nicht erkennen (oder mittlerweile doch??), allerdings ist dies nicht applikabel für mailto-Links.

Meine erste Idee war, da naheliegend, das @-Zeichen durch ein GIF (oder meinetwegen ein anderes Bild-Format) zu ersetzen, das ein @-Zeichen darstellt. Das müsste m.E. wirkungsvoll gegen Spamroboter sein, allerdings ist auch das nicht wirklich applikabel für mailto-Links.

Ein Freund hatte die Idee, mittels JavaScript eine Funktion zu machen, die quasi auf einen mailto-Link weiterleitet, etwa so:

---

<script language="JavaScript">
<!--
function mail(user,server) {
  location.href = "mailto:"+user+"@"+server;
}
//-->
</script>

---

Das ganze wäre dann beispielsweise für die fiktive E-Mail Adresse max.mustermann@musterhausen.net so aufzurufen:

---

<a href="javascript:mail('max.mustermann','musterhausen.net')">Mail senden</a>

---

Dazu muss natürlich JavaScript eingeschaltet sein, damit kann ich aber ganz gut leben. Davon ausgehend, dass JavaScript beim Client eingeschaltet ist, funktioniert diese Methode einwandfrei, ist allerdings nur auf mailto-Links anzuwenden. Wenn ich die eMail Adresse ganz normal anzeigen will, kann ich mit dieser Methode natürlich nichts anfangen.

Schlussendlich ist mir eine Methode eingefallen, die ich sowohl für mailto-Links als auch für die ganz normale Anzeige von eMail Adressen verwenden können müsste (hab's allerdings noch nicht ausprobiert):

---

<script language="JavaScript">
<!--
function showmail(username,server) {
  document.write(username);
  document.write("@");
  document.write(server);
}
//-->
</script>

---

Die Frage hierbei ist lediglich, ob Spamroboter nicht bereits so weit sind, JavaScript, bzw. document.write im Speziellen zu durchschauen und somit auch diese Methode null und nichtig im Kampf gegen Spam machen.

Bin gespannt auf Hinweise, Anregungen usw.
Oder vielleicht kann jemand ja mit meinen Ansätzen etwas anfangen.

Liebe Grüße,
Thomas

  1. Probier doch mal den Code:
    <script language="JavaScript">
     <!--
     var stb_domain = "endung zB freent.de"
     var stb_user = "name zB beispielskind"
     var stb_recipient = stb_user + "@" + stb_domain
     var stb_url = "mailto:" + stb_recipient
     document.write(stb_recipient.link(stb_url));
     // -->
     </script>

    Das würde den klickbaren link "beispielskind@freenet.de"
    ausgeben, wie man aber statt @ das bild anzeigt weiss ich nicht,
    sorry

    1. document.write(stb_recipient.link(stb_url));

      Wo allerdings wieder document.write() verwendet wird. Im Grunde genommen entspricht das in etwa meinem Ansatz; bei dieser Methode bin ich mir eben nicht sicher, ob Spamroboter etwas damit anfangen können.

      Das würde den klickbaren link "beispielskind@freenet.de"
      ausgeben, wie man aber statt @ das bild anzeigt weiss ich nicht,
      sorry

      Das wäre dann kein Problem, ich würde es mit PHP lösen.

      LG, Thomas

  2. Hallo Thomas!

    [...] wie man E-Mail Adressen im Quelltext vor Spamrobotern schützen kann [...]

    Im Endeffekt wohl gar nicht.

    Ich erinnere mich noch an einen ähnlichen Thread vor kurzem, den hab ich mal rausgesucht: http://forum.de.selfhtml.org/archiv/2003/9/56578/.

    Außerdem ergibt auch die Forumssuche noch einige andere Treffer (http://selfsuche.teamone.de/cgi-bin/hack.cgi?suchausdruck=Spam+E-Mail+sch�tzen&lang=on&feld=alle&index_5=on&index_6=on&index_7=on&index_8=on&index_9=on&index_10=on&hits=500)

    Ob Spambots nun JS können oder nicht, wer sich im Internet bewegt, muß sich eben entscheiden, ob er seine Adresse veröffentlichen, und sich dadurch evtl. Spam einfangen möchte oder nicht. Wobei man ja auch Spam an eigentlich unbekannte Adressen bekommen kann .. also bringt ein "Schutz" doch wieder nichts.

    MfG
    Götz

    --
    Losung und Lehrtext für Dienstag, 16. September 2003
    Auf dich, Herr, sehen meine Augen; ich traue auf dich, gib mich nicht in den Tod dahin. (Psalm 141,8)
    Der Sünde Sold ist der Tod; die Gabe Gottes aber ist das ewige Leben in Christus Jesus, unserm Herrn. (Römer 6,23)
    (http://www.losungen.de/heute.php3)
    1. Ich erinnere mich noch an einen ähnlichen Thread vor kurzem, den hab ich mal rausgesucht: http://forum.de.selfhtml.org/archiv/2003/9/56578/.

      Danke. Ich habe, wenn ich mich richtig erinnere, mit dem Suchbegriff "Spamrobot" oder "Spamroboter" gesucht, da wurde dieser Thread leider nicht angezeigt.

      Außerdem ergibt auch die Forumssuche noch einige andere Treffer (http://selfsuche.teamone.de/cgi-bin/hack.cgi?suchausdruck=Spam+E-Mail+sch�tzen&lang=on&feld=alle&index_5=on&index_6=on&index_7=on&index_8=on&index_9=on&index_10=on&hits=500)

      Dieser Link funktioniert derzeit leider nicht, bzw. bekomme ich nur die Meldung, dass der Server derzeit ausgelastet ist.

      Ob Spambots nun JS können oder nicht, wer sich im Internet bewegt, muß sich eben entscheiden, ob er seine Adresse veröffentlichen, und sich dadurch evtl. Spam einfangen möchte oder nicht.

      Natürlich, das ist klar. Trotzdem macht es m.E. einen Unterschied, ob ich mich überhaupt nicht um Schutz kümmere, oder ob ich mich doch um Schutz kümmere. Schutz kann wohl nie 100%ig sein.

      Ein vielleicht etwas unpassender Vergleich dazu wäre BungeeJumping. Passieren kann immer was, aber wenn man darauf achtet, dass das Seil und die Sicherheitseinrichtungen in Ordnung sind, wird wohl mit geringerer Wahrscheinlichkeit etwas passieren.
      (Zugegeben, unpassender Vergleich, aber in gewisser Weise doch analog dazu.)

      LG, Thomas

      1. Hallo Thomas!

        [Selfsuchlink] Dieser Link funktioniert derzeit leider nicht, bzw. bekomme ich nur die Meldung, dass der Server derzeit ausgelastet ist.

        Mußt halt mal wann anders schauen, wenn der Server viel schaffen muß wird dach suchscript automatisch deaktiviert, damit sich die Last nich noch mehr erhöht.

        Natürlich, das ist klar. Trotzdem macht es m.E. einen Unterschied, ob ich mich überhaupt nicht um Schutz kümmere, oder ob ich mich doch um Schutz kümmere. Schutz kann wohl nie 100%ig sein.

        Naja, ich denke, wenn es eh nichts bringt, warum sollte ichs dann machen?
        Du hast schon irgendwo Recht, aber ich sage mir halt: Entweder ganz, oder gar nicht ;)
        Zumal man eben mit so JS-Lösungen viele Leute ausschließt, was ich eigentlich nicht so gut finde (ich sage nur mal "Barrierefreiheit" ;).

        (Zugegeben, unpassender Vergleich, aber in gewisser Weise doch analog dazu.)

        Dazu fällt mir der Spruch ein "Nicht alles was hinkt ist ein Vergleich" ;)

        MfG
        Götz

        --
        Losung und Lehrtext für Dienstag, 16. September 2003
        Auf dich, Herr, sehen meine Augen; ich traue auf dich, gib mich nicht in den Tod dahin. (Psalm 141,8)
        Der Sünde Sold ist der Tod; die Gabe Gottes aber ist das ewige Leben in Christus Jesus, unserm Herrn. (Römer 6,23)
        (http://www.losungen.de/heute.php3)
        1. Naja, ich denke, wenn es eh nichts bringt, warum sollte ichs dann machen?

          So, dass es NICHTS bringt, ist es ja auch nicht. Es ist nur leider nicht 100%ig. Natürlich kann man dann auch argumentieren, dass es _nichts_ bringt, da nicht 100%ig sicher, das ist Anschauungssache, allerdings ich bin da nicht so der ganz-oder-gar-nicht-Typ ;-)
          100%ig sicher wär mir aber natürlich auch lieber.

          Du hast schon irgendwo Recht, aber ich sage mir halt: Entweder ganz, oder gar nicht ;)
          Zumal man eben mit so JS-Lösungen viele Leute ausschließt, was ich eigentlich nicht so gut finde (ich sage nur mal "Barrierefreiheit" ;).

          Hast recht. Um das Kontaktformular, dass die Mailadresse nur serverseitig speichert und nie im Quelltext erscheinen lässt, kommt man bei einer Forderung nach 100%iger Sicherheit wohl nicht herum. Wobei auch das nicht 100%ig ist, wenn man's ganz genau nimmt ;-)

          Dazu fällt mir der Spruch ein "Nicht alles was hinkt ist ein Vergleich" ;)

          Na, na. Ich fand den Vergleich trotzdem nett ;-)

          LG, Thomas

  3. Moin!

    Wenn sich unsere lieben Abgeordneten weniger Sorgen um die Pantentierbarkeit von so erfindungshohen Lösungen wie Fortschrittsbalken machen würden, könnte man endlich mal ein weltweites  Rechtssystem installieren, mit dessen Hilfe den Spammern auf den Teller geschi..en wird.

    <script language="JavaScript">

    ->  <script type="Text/JavaScript"> bitte!

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Meinereinerselbst ist auf der Suche nach Aufträgen
    1. Wenn sich unsere lieben Abgeordneten weniger Sorgen um die Pantentierbarkeit von so erfindungshohen Lösungen wie Fortschrittsbalken machen würden, könnte man endlich mal ein weltweites  Rechtssystem installieren, mit dessen Hilfe den Spammern auf den Teller geschi..en wird.

      Darauf würde ich mich lieber nicht verlassen :-)

      <script language="JavaScript">
      ->  <script type="Text/JavaScript"> bitte!

      Ach? Da hab ich wohl etwas verschlafen. Wie kommt's?

      LG, Thomas

  4. Hi,

    da ich gerade ein Redaktionssystem in PHP für mich schreibe,

    Warum nimmst Du keines der aberhundert, die es schon gibt? ;-)

    habe ich überlegt, wie man E-Mail Adressen im Quelltext vor Spamrobotern schützen kann. Unicode-Verschlüsselung hilft wohl nichts mehr, da die Spamroboter mittlerweile "schlau" genug dafür sind. Freshmeat wiederum dürften die Spamroboter nicht erkennen (oder mittlerweile doch??), allerdings ist dies nicht applikabel für mailto-Links.

    Mailto-Links sind eh nicht sonderlich praktikabel, da sie vorraussetzen, das es auch ein entsprechend configuriertes Mailprogramm gibt. Aber dienen der Bequemlichkeit und schaden nicht sonderlich, zugegeben ;-)

    Ich selber habe mich dem Problem einmal gewidmet und hier einen Thread verursacht http://forum.de.selfhtml.org/archiv/2003/4/45380/. Da hat Armin den einzig halbwegs praktikablen Vorschlag gemacht, eine Beschreibung hinzustellen, die die Zusammensetzung der Adresse beinhaltet. Das ist aber natürlich nur noch mit Aufwand anklickbar zu machen.
    Zudem rücken Spammer mehr und mehr davon ab, tatsächlich echte Adressen zu sammeln. Es werden stattdessen einfach Adresslisten aus Namenslisten und einigen einfachen Algorithmen generiert. Das kostet zwar Bandbreite, aber wenn es nicht die eigene ist ...

    BTW: sieht so aus, als ob das Päckchen, das ich da angepriesen habe nicht mehr online ist, bei Bedarf schicke ich es Dir gerne zu, sind nur 9 kib. Aber ob sich das lohnt wage ich zu bezweifeln ;-)

    so short

    Christoph Zurnieden

    1. Warum nimmst Du keines der aberhundert, die es schon gibt? ;-)

      Weil ich halt gerne etwas selber mache :-)
      Nicht, dass ich übermäßig fit in PHP, HTML und JavaSript wäre, aber irgendwie ist es für mich doch angenehmer, wenn ich ein Script habe, dass perfekt auf mich zugeschnitten ist.

      Ich selber habe mich dem Problem einmal gewidmet und hier einen Thread verursacht http://forum.de.selfhtml.org/archiv/2003/4/45380/. Da hat Armin den einzig halbwegs praktikablen Vorschlag gemacht, eine Beschreibung hinzustellen, die die Zusammensetzung der Adresse beinhaltet. Das ist aber natürlich nur noch mit Aufwand anklickbar zu machen.

      Danke für den Link - ich werd ihn mir zur Gemüte führen. Leider (eigentlich Gott sei Dank :-) ) habe ich noch etwas vor und muss dann los. Aber danach, bzw. spätestens morgen. Danke im Voraus schon mal.

      Zudem rücken Spammer mehr und mehr davon ab, tatsächlich echte Adressen zu sammeln. Es werden stattdessen einfach Adresslisten aus Namenslisten und einigen einfachen Algorithmen generiert. Das kostet zwar Bandbreite, aber wenn es nicht die eigene ist ...

      BTW: sieht so aus, als ob das Päckchen, das ich da angepriesen habe nicht mehr online ist, bei Bedarf schicke ich es Dir gerne zu, sind nur 9 kib. Aber ob sich das lohnt wage ich zu bezweifeln ;-)

      Welches Päckchen? Ich stehe jetzt wohl etwas auf der Leitung... Aber weißt Du was? Schick es mir einfach, ich werd es mir anschauen. Meine angegebene Mailadresse da oben stimmt schon. Und ein Spamroboter oder Adressensammler bist Du ja wohl nicht ;-)

      LG und schönen Abend noch,
      Thomas

  5. Die Frage hierbei ist lediglich, ob Spamroboter nicht bereits so weit sind, JavaScript, bzw. document.write im Speziellen zu durchschauen und somit auch diese Methode null und nichtig im Kampf gegen Spam machen.

    Unter dieser Vorraussetzung kannst Du absolut jeden Ansatz im Keim ersticken, denn egal ob die Sammler jetzt schon diesen oder jenen Trick kennen oder nicht: Früher oder später werden sie ihn kennen. Der Haken an der Sache ist nämlich, daß die Adresse maschinenlesbar sein _muß_, soll sie noch im eigentlich angedachten Zweck nutzbar sein.

    Im Ergebnis steht somit lediglich die Erkenntnis, daß Du das Problem am falschen Ende anfasst. Die effektivste Methode ist und bleibt ganz einfach Spam aus der eingehenden Post heraus zu filtern, denn eines müssen die Spammer: Ihre Botschaft durchbringen - und genau da sind sie verwundbar, sehr leicht sogar.

    Das soll jetzt aber alles nicht bedeuten, daß die Ich-verstecke-mich-mit-Javascript-Methode wirkungslos wäre (ich stufe sie als brauchbar ein, da ich sie seit mehr als zwei Jahren nutze), es geht nur um Deine obige Aussage bezüglich des technologischen Fortschritts.

    Davon unabhängig:
    Alternativ bzw. für die Leute, die Javascript nicht eingeschaltet haben (gute Gründe dafür gibt's genug), wäre der Verweis auf ein Formular, das zum Beispiel über "/kontakt?name=hanswurst" aufgerufen wird und quasi als Mailschnittstelle dient. Bitte an den Flooding-Schutz denken!

    Hast Du Zugriff auf Deinen Mailserver, setze die Anforderungen an die Mailclients auf ein gewisses Niveau. Es ist erstaunlich, wieviele Spammer die einfachsten Regeln nicht beherrschen.

    Gruß,
      soenk.e

    1. Hi,

      Unter dieser Vorraussetzung kannst Du absolut jeden Ansatz im Keim ersticken, denn egal ob die Sammler jetzt schon diesen oder jenen Trick kennen oder nicht: Früher oder später werden sie ihn kennen. Der Haken an der Sache ist nämlich, daß die Adresse maschinenlesbar sein _muß_, soll sie noch im eigentlich angedachten Zweck nutzbar sein.

      OK

      Im Ergebnis steht somit lediglich die Erkenntnis, daß Du das Problem am falschen Ende anfasst. Die effektivste Methode ist und bleibt ganz einfach Spam aus der eingehenden Post heraus zu filtern, denn eines müssen die Spammer: Ihre Botschaft durchbringen - und genau da sind sie verwundbar, sehr leicht sogar.

      ?

      Das soll jetzt aber alles nicht bedeuten, daß die Ich-verstecke-mich-mit-Javascript-Methode wirkungslos wäre (ich stufe sie als brauchbar ein, da ich sie seit mehr als zwei Jahren nutze), es geht nur um Deine obige Aussage bezüglich des technologischen Fortschritts.

      Ist halt eine Methode, die funktioniert. Mehr oder weniger.

      Hast Du Zugriff auf Deinen Mailserver, setze die Anforderungen an die Mailclients auf ein gewisses Niveau. Es ist erstaunlich, wieviele Spammer die einfachsten Regeln nicht beherrschen.

      Tendenziell spammen die Dummen.

      Gruss,
      Lude

    2. Im Ergebnis steht somit lediglich die Erkenntnis, daß Du das Problem am falschen Ende anfasst. Die effektivste Methode ist und bleibt ganz einfach Spam aus der eingehenden Post heraus zu filtern, denn eines müssen die Spammer: Ihre Botschaft durchbringen - und genau da sind sie verwundbar, sehr leicht sogar.

      Das ist natürlich richtig, allerdings finde ich es schon zielführend, zusätzlich dazu zu versuchen, den Spam schon von Anfang an zu vermeiden.

      Das soll jetzt aber alles nicht bedeuten, daß die Ich-verstecke-mich-mit-Javascript-Methode wirkungslos wäre (ich stufe sie als brauchbar ein, da ich sie seit mehr als zwei Jahren nutze), es geht nur um Deine obige Aussage bezüglich des technologischen Fortschritts.

      Hast schon Recht, es führt sich eigentlich selbst ad absurdum.

      Davon unabhängig:
      Alternativ bzw. für die Leute, die Javascript nicht eingeschaltet haben (gute Gründe dafür gibt's genug), wäre der Verweis auf ein Formular, das zum Beispiel über "/kontakt?name=hanswurst" aufgerufen wird und quasi als Mailschnittstelle dient. Bitte an den Flooding-Schutz denken!

      Das wäre natürlich der letzte Schritt. Mein Bedenken hierbei ist, dass ich schon des Öfteren gehört habe, dass Kontaktformulare weniger "beliebt" sind, sozusagen. Andererseits, schlimmer als eine JavaScript Lösung ist es keinesfalls - denn wie Du schon gesagt hast, JavaScript haben viele abgeschaltet.

      LG, Thomas

      1. Das ist natürlich richtig, allerdings finde ich es schon zielführend, zusätzlich dazu zu versuchen, den Spam schon von Anfang an zu vermeiden.

        Klar, da hast Du vollkommen recht. Die Schwierigkeit dabei ist nur immer, daß man die Sache nicht verschlimmbessert :)

        Alternativ bzw. für die Leute, die Javascript nicht eingeschaltet haben (gute Gründe dafür gibt's genug), wäre der Verweis auf ein Formular, das zum Beispiel über "/kontakt?name=hanswurst" aufgerufen wird und quasi als Mailschnittstelle dient. Bitte an den Flooding-Schutz denken!

        Das wäre natürlich der letzte Schritt.

        Es muß nicht der letzte Schritt sein, benutze einfach eine <script>/<noscript>-Kombination. Ich mache da auf http://kino-fahrplan.de/intern/kontakt so und habe wie gesagt seit Jahren keine Probleme damit.

        Mein Bedenken hierbei ist, dass ich schon des Öfteren gehört habe, dass Kontaktformulare weniger "beliebt" sind, sozusagen.

        Persönlich möchte ich Dir in dem Punkt eigentlich beipflichten, allerdings bin ich mir da gar nicht mal so sicher. Bei meiner oben genannten Variante kommt beispielsweise deutlich mehr Post über das Formular als über die auf derselben Seite vorhandene mailto:-Adresse.

        Es kommt sicherlich auch auf das Formular und teilweise auch auf den Anwendungszweck an. Letzeres, weil man in manchen Fällen vielleicht eine Kopie auf seinem Rechner behalten möchte. Zu ersterem wäre zu sagen, daß mir schon so viele 10x5 Zeichen große Felder für den Nachrichtentext untergekommen sind, daß es mich nicht wundert, daß einige Leute ein Problem mit Formularen haben - in so einem Futzel kann man einfach nichts Vernünftiges schreiben.

        Gruß,
          soenk.e

        1. Es muß nicht der letzte Schritt sein, benutze einfach eine <script>/<noscript>-Kombination. Ich mache da auf http://kino-fahrplan.de/intern/kontakt so und habe wie gesagt seit Jahren keine Probleme damit.

          Schaut auch ganz vernünftig aus, auch vom Quellcode her. Bisher also keine Spamprobleme gehabt?

          Es kommt sicherlich auch auf das Formular und teilweise auch auf den Anwendungszweck an. Letzeres, weil man in manchen Fällen vielleicht eine Kopie auf seinem Rechner behalten möchte.

          Das mit der Kopie ist wirklich keine dumme Überlegung. Vielleicht werd ich es als Checkbox optional anbieten.

          »»Zu ersterem wäre zu sagen, daß mir schon so viele 10x5 Zeichen große Felder für den Nachrichtentext untergekommen sind, daß es mich nicht wundert, daß einige Leute ein Problem mit Formularen haben - in so einem Futzel kann man einfach nichts Vernünftiges schreiben.´

          Zustimmung :)

          LG, Thomas

          1. Es muß nicht der letzte Schritt sein, benutze einfach eine <script>/<noscript>-Kombination. Ich mache da auf http://kino-fahrplan.de/intern/kontakt so und habe wie gesagt seit Jahren keine Probleme damit.

            Schaut auch ganz vernünftig aus, auch vom Quellcode her. Bisher also keine Spamprobleme gehabt?

            Nicht, daß ich mich erinnern könnte. Wobei mir gerade einfällt, daß es eigentlich mal interessant wäre, eine Mailadresse dort unkaschiert abzulegen, um zu testen, wie hoch die Gefahr überhaupt ist.

            Gruß,
              soenk.e

            1. Nicht, daß ich mich erinnern könnte. Wobei mir gerade einfällt, daß es eigentlich mal interessant wäre, eine Mailadresse dort unkaschiert abzulegen, um zu testen, wie hoch die Gefahr überhaupt ist.

              Das wäre es wirklich. Wie das Leben so spielt, könnte es schon sein, dass du keine einzige Spam-Mail auf diesen Account bekommst. Die Ironie des Lebens.. Naja, und EDV ist ja sowieso Glückssache ;-)

              LG, Thomas

  6. Hallo...

    ich hab jetzt schon eine Zeit lang gesucht aber leider nicht wiedergefunden :-/
    Letztens las ich, daß diese Mailbots sogar schon in der Lage sind E-Mail adressen die als Grafiken hinterlegt sind zu grabben. Weiß leider nicht mehr wo's war, glaub bei heise, kann aber auch Chip.de oder so gewesen sein.

    Ich für meinen Teil schreibe mailadressen soweit es mir möglich ist garnicht in den HTML-Source und regele kontaktaufnahmen über ein Mail-Formular, welches über eine ID dann dann die Adresse aus einer DB holt.

    ansonsten verwende ich auch die Grafikversion oder beispiel[at]adresse.de oder sowas...

    weitere Hinweise kann ich im Moment leider nicht geben.

    mfG Markus

    1. Hi,

      weitere Hinweise kann ich im Moment leider nicht geben.

      wann denn?

      Gruss,
      Lude

      PS: btw - Du schuldest 'Ole' (und mir) noch versprochenen Code.