Früher, noch zu Zeiten meines Rails-Blogs, hatte dieses Blog eine Kommentarfunktion. Die wurde allerdings nur am Anfang genutzt und recht schnell von Spambots gefunden und missbraucht. Ich habe die dann erst einmal abgeschaltet, um sie später, mit Honeypotfeldern für die Spambots, wieder zu aktivieren. Im selben Jahr allerdings noch bin ich auch meinen static site generator umgestiegen, und da war dann ein Kommentarfeld einfach nicht mehr möglich.
Ich hatte diese Funktion nie ernsthaft vermisst, aber ein kleiner Zweifel nagte doch an mir: Was ist, wenn jemand wirklich einen wichtigen Hinweis zu einem meiner Artikel hat? Was ist, wenn ich mangels Kommentarfunktion vielleicht die Lösung für das in einem Blogpost beschriebene Problem verpasse? Was, wenn ich einen Fehler gemacht habe, den ich unbedingt korrigieren muss? Eine Möglichkeit für Feedback oder eine Kontaktmöglichkeit wäre schon nicht schlecht. Ich könnte meine Emailadresse hinterlegen, aber dann kriege ich vielleicht wieder Unmengen an Spam (Die Phishing-Mail vom Freitag war übrigens Zufall und hat nichts mit diesem Post hier zu tun. Trotzdem ist sie ein gutes Beispiel).
Email-Obfuscation to the rescue
Jetzt bin ich im März über einen Blogpost zur Email-Obfuscation auf Websites gestoßen. Der Autor stellt hier viele Obfuscation-Techniken vor, sowohl für die Emailadresse im Text als auch für die Adresse in einer email:-URL in einem <a>-Tag. Er hat auch untersucht, wie viele Scraper er mit einer jeweiligen Technik abwehren konnte. Das war selbst bei simplen Techniken immer erstaunlich viel.
Nun habe ich aber ein paar Bedingungen an eine Email-Obfuscation auf meiner Website:
- kein Javascript – damit fallen die wirksamsten Methoden weg
- keine Server-Interkation: dadurch kann ich zum Beispiel keine Weiterleitung auf eine Emailadresse machen
- die Methode muss barrierefrei sein: ich will keine „irgendwas ÄT example.com“-Adressen, die meine Nutzer dann selber zusammensetzen dürfen. Ich möchte auch keiner Bilder meine Emailadresse verwenden, die die Leute dann selber abtippen müssen.
Ich habe mich für eine Kombination aus zwei Techniken entschieden: erstens habe ich die Emailadresse URL-encodiert (das heißt die Bytefolge der Adresse durch %xy ersetzt, wobei xy eine zweistellige Hexadezimalzahl ist). Zum anderen habe ich die ganze URL als HTML-Entitäten der Form &#<unicode-number>; ersetzt. So wird zum Beispiel aus der Adresse some+one@example.com zunächst
%73%6f%6d%65%2b%6f%6e%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d
Ich habe noch einen Betreff hinzugefügt, die komplette URL sähe dann so aus:
mailto:%73%6f%6d%65%2b%6f%6e%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d?subject=%f0%9f%92%a4
Das dann noch in HTML-Entitäten encodiert, sieht so aus:
mailto:%73%6f%6d%65%2b%6f%6e%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d?subject=%f0%9f%92%a4
Jetzt sollte man meinen: Das ist doch keine große Sache, das wird doch sicher ein einfacher HTML-Parser auflösen. Nun, grundsätzlich ja. Das ist, warum so eine URL im Browser wunderbar funktioniert. Anscheinend sind die meisten Scraper jedoch sehr simpel aufgebaut und machen so etwas nicht. Absolut sicher ist das natürlich nicht, aber meine Spamfilter können den Rest hoffentlich erträglich klein halten. Die Adresse, die ich hier im Blog nutze, ist ein Alias zu meiner Posteo-Adresse und ich verwende sie nur hier. Wenn der Spam zu viel wird, lösche ich die Adresse einfach und füge hier eine neue ein, so dass die Scraper von Vorne beginnen können.
Der Nachteil: die URL ist so deutlich länger, was auch meine HTML-Dateien größer macht. Bei einer niedrigen zweistelligen Anzahl sowohl auf der Startseite als auch auf der Archivseite ist das aber ertragbar.
Kommentiert!
So, jetzt hoffe ich dass ich auch gelegentlich Kommentare bekomme. Die werde ich dann in irgendeiner Form hier einfügen (wenn ich möchte). Vielleicht bringe ich auch dediziertes HTML für die Kommentare zurück. Die alten Kommentare sind nämlich nicht gelöscht, sondern liegen hier noch im Repo und warten darauf, wieder angezeigt zu werden. Vorerst werde ich aber Kommentare wohl einfach in einem Update des Blogposts verwursten.
Ich habe bei den Email-Links immer einen Betreff eingefügt. Den könnt ihr wenn ihr Kommentieren wollte gerne nach belieben Ändern, ich wollte nur vermeiden, Emails ohne Betreff zu bekommen.
Ich plane auch, irgendwann so etwas wie eine Kontaktseite und vielleicht ein paar andere statische Seiten einzuführen. Aber einfach Kommentarlinks unter meine Blogposts zu hauen war jetzt erst einmal die einfachste Option.











