Schutz von E-Mail-Adressen per SVG statt mit JavaScript
(rouninmedia.github.io)-
Technik zum Schutz von E-Mail-Adressen mit SVG
- Eine Live-Demo findet sich unter SVG-based Email Protection
- Öffentlich auf Webseiten sichtbare E-Mail-Adressen müssen in der Regel vor E-Mail-Sammelbots geschützt werden
- Bisher wurden dafür Verfahren genutzt, die HTML, CSS und JS kombinieren, jeweils mit eigenen Vor- und Nachteilen
- Ansätze mit JS sind ausgefeilter als HTML/CSS-basierte Alternativen, haben aber den Nachteil, dass JS zu einem unverzichtbaren Bestandteil der Seite wird
- JS kann eine Seite verbessern, idealerweise sollten jedoch alle wesentlichen Funktionen auch dann funktionieren, wenn JS deaktiviert ist
- Die hier vorgestellte Methode nutzt einen SVG-basierten Ansatz, der sich grundlegend von bestehenden Techniken zum E-Mail-Schutz mit CSS, JS oder CSS+JS unterscheidet
-
Drei Vorteile der SVG-basierten Technik zum Schutz von E-Mail-Adressen
- Funktioniert auch bei deaktiviertem JavaScript
- Der wichtigste Vorteil des SVG-basierten Ansatzes ist, dass überhaupt kein JS erforderlich ist
- Selbst wenn Besucher JS deaktivieren, bleibt die auf der Seite angezeigte E-Mail-Adresse nutzbar und zugänglich, ist weiterhin geschützt, sicher und vor Spambots verborgen
- Nutzung eines standardmäßigen
mailto:-Links möglich- Anders als bei anderen Verfahren ohne zusätzliches JS (etwa HTML-Kommentare oder das Ausblenden von Elementen) kann der SVG-basierte Ansatz einen standardmäßigen
mailto:-Link verwenden - Der
mailto:-Link befindet sich allerdings nicht im referenzierenden HTML-Dokument, sondern im externen SVG-Dokument
- Anders als bei anderen Verfahren ohne zusätzliches JS (etwa HTML-Kommentare oder das Ausblenden von Elementen) kann der SVG-basierte Ansatz einen standardmäßigen
- Inhalt wird wie bei einem Bild verborgen, bleibt aber wie Text kopierbar
- Eingebettetes SVG ähnelt einem Bild, ist aber kein Bild
- Als eingebettetes Ersatzelement in einem Hypertext-Dokument kann SVG die E-Mail-Adresse genauso wirksam vor Spambots verbergen wie ein Bild
- Streng genommen ist SVG jedoch kein tatsächliches Bild, sondern ein Grafikdokument
- Daher kann man im Gegensatz zu einem Bild per Rechtsklick die ``-Elemente des eingebetteten SVG kopieren und so die E-Mail-Adresse kopieren
- Funktioniert auch bei deaktiviertem JavaScript
-
Code-Implementierung
- Das Beispiel besteht aus zwei Dateien
- Das SVG-Grafikdokument wird mit dem ``-Tag in das HTML-Hypertext-Dokument eingebettet
- Dasselbe SVG-Grafikdokument kann einmal oder mehrfach in den Hypertext eingebettet werden
- Es sind Codebeispiele für die HTML-Datei und die SVG-Datei enthalten
-
Überlegungen zur Barrierefreiheit
- Wichtig ist, dass dieses Setup so barrierefrei wie möglich bleibt
- Dafür sollte im SVG-Grafikdokument auf Folgendes geachtet werden:
- Das gesamte SVG-Dokument ist über
aria-labelledbymit dem SVG-Dokument-`` verknüpft, das die Handlungsaufforderung beschreibt - Das Ankerelement `` innerhalb des SVG besitzt ein
aria-labelmit derselben Handlungsaufforderung - Das SVG ist so gestaltet, dass bei Tab-Fokus auf dem Ankerelement
sowohl die Kindelementeals auch `` hervorgehoben werden
- Das gesamte SVG-Dokument ist über
Meinung von GN⁺
- Ein ungewöhnlicher Ansatz, bei dem SVG in ein HTML-Dokument eingebettet wird, um E-Mail-Adressen ohne JS-Abhängigkeit vor Spambots zu verbergen. Eine interessante Technik, die sowohl Barrierefreiheit als auch Nutzbarkeit berücksichtigt.
- Allerdings sollte man beachten, dass selbst ausgefeilte Frontend-Techniken die raffiniertesten Spambots nicht vollständig aufhalten können. Diese Grenze gilt letztlich für jede Sicherheitslösung.
- Für den praktischen Einsatz dürften zusätzliche Prüfungen nötig sein, etwa zu den Auswirkungen auf SEO, zur Kompatibilität mit verschiedenen Browsern und Geräten sowie zur Performance.
- Als Backend-Lösungen zum Schutz von E-Mails können zusätzlich auch reCAPTCHA oder Honeypot-Techniken in Betracht gezogen werden.
- Es ist ein interessanter Ansatz, der fortgeschrittene Funktionen von CSS und SVG nutzt, in der Praxis aber noch Einschränkungen zu haben scheint. Für Frontend-Entwickler ist es dennoch eine spannende Idee, die einen Test wert sein könnte.
1 Kommentare
Hacker-News-Kommentare
Zusammengefasst lauten die Meinungen dazu, ob öffentlich auf einer Webseite angegebene E-Mail-Adressen vor Spam-Bots geschützt werden müssen, wie folgt:
Purelymailist das kein großes Problem<object>-Tag nicht gerendert, daher funktioniert diese Technik nicht1920x1080@60Hzals[email protected]angezeigt wird