Kontakt-obfuszkátor
E-mail-cím vagy telefonszám a weboldaladra úgy, hogy a látogató lássa, a címgyűjtő robotok nagy része viszont ne. Módszerenként megmutatjuk, mit nyersz és mit veszítesz vele.
Nem csodaszer. Az egyszerű címgyűjtők ellen véd, a JavaScriptet futtató vagy a trükköt ismerő robot ellen nem. A beírt cím nem hagyja el a böngésződet.
Eredmény
Így látja a látogató
Hátrány:
Mit talál a robot?
-
Regex a nyers forrásban Letölti a HTML-t, és értelmezés nélkül címmintát keres benne.
-
HTML-értelmező, CSS és JS nélkül Feloldja az entitásokat, eldobja a megjegyzéseket és a címkéket, a rejtett elemeket is olvassa.
-
Böngészőt futtató robot Lefuttatja a JavaScriptet, a látható szöveget és a linkeket olvassa. Nem kattint, képet nem ismer fel.
A robot az előnézetből és a kódból valóban kiolvassa ezt, ez nem becslés. Egy robot, amely ismeri a konkrét trükköt, mindegyiket visszafejti, a képet is (szövegfelismeréssel).
Másolás próbája
Kód a weboldaladba
kontakt-dekodolo.js letöltése
1,3 KB, keretrendszer nélkül. Tedd a weboldalad /js/ mappájába, vagy írd át az útvonalat a kódban.
Módszerek egymás mellett
Az egyetlen nyilvános, folyamatosan frissített mérés Spencer Mortensen élő kísérlete. Minden módszer egy saját e-mail-címet véd a cikkében, és ha arra a címre spam érkezik, a módszert valaki feltörte.
| Módszer | Szöveg | Link | JavaScript | Képernyőolvasó | Másolás | Fő hátrány |
|---|---|---|---|---|---|---|
| Védelem nélkül | 0 % | 0 % | nem kell | jó | jó | Minden címgyűjtő megtalálja. |
| Rejtett csali (CSS) | 100 % | – | nem kell | jó | jó | Nem kattintható. |
| HTML-megjegyzés | 99 % | – | nem kell | jó | jó | Nem kattintható, egy értelmező egyben látja. |
| HTML-entitások | 95 % | 99 % | nem kell | jó | jó | Egy értelmező egy lépésben visszafejti. |
| Fordított szövegirány (CSS) | 100 % | – | nem kell | visszafelé olvassa | fordítva | Akadálymentesség. |
| Jelcsere: [kukac] | 97 %1 | – | nem kell | érthető | kézzel kell átírni | Elgépelés. |
| ROT18-kódolás (JS) | 100 % | 99 % | kell | jó | jó | JS nélkül nem látszik. |
| Megjelenítés kattintásra (JS) | 100 % | 100 % | kell | jó (gomb) | jó | Plusz egy kattintás. |
| Kép | 100 %2 | – | nem kell | nem érhető el | nem | Akadálymentesség, nagyítás. |
1 Angol AT és DOT szavakkal mérve, a magyar [kukac] változatra nincs adat. 2 JPG képpel mérve, itt SVG-kép készül.
A szerző maga írja, hogy a minta még kicsi, ezért a 95 és a 100 % közti különbség bizonytalan. A számok csak e-mail-címre vonatkoznak, telefonszámra nincs hasonló mérés. A kísérletben használt kód részleteiben eltér a mienktől (pl. a csali szövege), a módszer elve azonos. Utolsó frissítés: 2026. augusztus 8., lekérdeztük: 2026. október 12.
Melyiket válaszd?
A legtöbb oldalra elég egy JavaScript nélküli, akadálymentes módszer. Ami a gyűjtők szinte mindegyikét megállítja, az a látogatónak ne okozzon gondot.
-
Szövegnek: rejtett csali
JavaScript nélkül működik, a képernyőolvasó és a másolás a valódi címet adja, a mérésben 100 %-ot ért el. Ez az alapbeállítás.
-
Linknek: entitások vagy kattintás
Kattintható
mailto:linkhez az entitások JS nélkül 99 %-ot értek el. Ha ennél többet szeretnél, és az oldaladon van JavaScript, válaszd a kattintásra megjelenő címet, külső fájllal. -
Kerüld a képet és a fordított irányt
A képen lévő címet a képernyőolvasó nem tudja felolvasni, a fordított szöveget visszafelé olvassa. Mindkettő ütközik a WCAG 2.2 1.1.1 és 1.4.5 pontjával, pedig van ugyanilyen hatékony, akadálymentes módszer.
-
Szigorú CSP mellett külső fájl
Ha az oldalad Content Security Policyja nem enged inline szkriptet, a JS-es módszerekhez a külső fájlos változat kell. A klevi.hu is ilyen szabállyal fut, ezért az előnézet is így működik.
-
Telefonszámnál nemzetközi alak
Mérés nincs rá, ugyanazok az elvek érvényesek. A
tel:link +36-tal kezdődjön (RFC 3966), így külföldről és minden telefonról hívható. -
Ne csak erre építs
A cím előbb-utóbb máshonnan is kiszivárog (levelezés, adatszivárgás). A valódi védelem a spamszűrő, egy külön cím (álnév) a weboldalra, vagy egy kapcsolati űrlap.
Kérdések
Megéri még elrejteni a címet?
Mortensen mérésében a védelem nélküli címet minden megfigyelt spammer megtalálta, a legegyszerűbb trükk is a túlnyomó többségüket távol tartotta. A célzott támadás és a böngészőt futtató robot ellen nem véd, de a tömeges gyűjtés ellen olcsón és hatékonyan igen.
Honnan jönnek a százalékok?
Spencer Mortensen „Email obfuscation: what works in 2026?” című, folyamatosan frissített cikkéből. Minden módszer egy külön címet véd, a beérkező spamet spammerenként számolja. A szöveges címekre 742, a linkekre 698 spammer adatából. A szerző szerint a minta még kicsi. Mi csak a mért értékeket vesszük át, a cikk szövegét és kódját nem.
Mi a különbség a display:none és a vizuálisan rejtett elem között?
A display: none elemet a böngésző egyáltalán nem rajzolja ki: a képernyőolvasó nem olvassa fel, és másoláskor sem kerül a vágólapra. A vizuálisan rejtett (clip, 1 px-es) elem csak nem látszik, de felolvasásban és másolásban benne van. A csalit ezért mindig display: none rejtse, különben a látogató is a hamis címet kapja. Az eszköz „Másolás próbája” része mindkettőt megmutatja.
Miért nincs a listán az SVG?
A mérésben szereplő SVG-módszer egy külön feltöltött SVG-fájlt tölt be <object> elemmel. Ezt a sok helyen ajánlott object-src 'none' CSP-szabály letiltja, és külön fájlt kell feltölteni hozzá. Ha az SVG-t közvetlenül az oldalba írod, a cím olvashatóan ott áll a forrásban, így nem véd.
Mi a baj a képpel?
Az alt szövegbe nem írhatod a címet, mert akkor a robot is kiolvassa, így a képernyőolvasót használók nem tudják meg. Nem kattintható, nem másolható, és nagyításnál vagy sötét témánál rosszul látszhat. A WCAG 2.2 1.4.5 pontja szerint szöveget szövegként kell megjeleníteni, ha lehet.
Mit jelent a CSP-figyelmeztetés?
A Content Security Policy egy biztonsági fejléc, amely megmondja, honnan futhat szkript. Ha nem engedi az inline szkriptet (nincs benne 'unsafe-inline', hash vagy nonce), a HTML-be írt <script> nem fut le, és a cím meg sem jelenik. A külső fájlos változat a saját domainedről tölt be egy fájlt, ezt a szokásos script-src 'self' engedi.
Elmentitek a beírt címet?
Nem. A kód a böngésződben készül, a cím nem kerül hálózatra, a címsorba vagy a böngésző tárhelyére. Az oldal semmit nem jegyez meg.
Források
Mérés: Spencer Mortensen: Email obfuscation: what works in 2026? (új lapon nyílik, angol), utolsó frissítés 2026. augusztus 8., lekérdezve 2026. október 12. A szöveg a szerző jogvédett műve, mi csak a mért adatokat idézzük forrásmegjelöléssel.
Akadálymentesség: W3C WCAG 2.2 (új lapon nyílik, angol), 1.1.1 Nem szöveges tartalom, 1.4.5 Szöveget tartalmazó kép. Telefonlink: RFC 3966, The tel URI for Telephone Numbers (új lapon nyílik, angol). CSP: W3C Content Security Policy Level 3 (új lapon nyílik, angol).