Zadnje čase se mi je nekajkrat zgodilo, da sem med brskanjem po spletu naletel na spletno stran, kjer se je med kontaktnimi podatki namesto e-maila nahajal tekst [email protected]. Tekst je vseboval tudi povezavo na /cdn-cgi/l/email-protection. Če sem povezavi sledil, sem naletel na prazno stran z napako 404 (ta stran ne obstaja).
Ko se je to zgodilo prvič, temu nisem posvečal preveč pozornosti. Predvideval sem, da gre za napako na spletni strani. Potem pa sem na isto težavo naletel tudi na drugih spletnih straneh. Zato sem se odločil, da zadevo raziščem.
Prvi zadetek je bila reddit objava na to temo, kjer prvi komentar razloži:
[...] When Cloudflare is protecting your site it replaces emails with that url when it detects bots are trying to scrape the page.
Zdaj vem, da je to, kar se dogaja, del storitve, ki jo ponuja Cloudflare. Bolj specifično je to Email Address Obfuscation, ki je v njihovi dokumentaciji tudi malo bolje razložena. V dokumentaciji piše tudi:
[...] email addresses on your web page will be hidden from bots, while keeping them visible to humans. In fact, there are no visible changes to your website for visitors.
Zgornje seveda ne drži, saj sem jaz uporabnik in ne bot. E-maili pa se kljub temu niso prikazali. Kaj se torej dogaja?
Prva stvar, na katero sem pomislil, je bil JavaScript. Uporabljam namreč NoScript razširitev, ki privzeto blokira JavaScript na vseh spletnih straneh.
Kot sem predvideval, so se e-maili prikazali takoj, ko sem za dotično spletno stran dodal izjemo in dovolil, da se JavaScript izvede.
Z uporabo orodja za razvijalce, sem nato našel email-decode.min.js. Predvideval sem, da je to skripta, ki poskrbi, da se [email protected] spremeni nazaj v prvotno obliko - e-mail. Ker pa sem želel to potrditi, sem se odločil, da to preizkusim s pomočjo Burp Suite.
Burp Suite mi omogoča, da vsako zahtevo na spletni strani izvedem ločeno. Izkazalo se je, da sem imel prav. Ko se je naložila in izvedla skripta email-decode.min.js, se je [email protected] spremenil v dejanski e-mail.

Ker me je vse skupaj zelo pritegnilo, sem se nato odločil, da pobrskam še "email-decode.min.js". Tako sem naletel na prispevek nekoga, ki se je odločil, da sam implementira nekaj podobnega temu, kar ponuja Cloudflare. Preko tega prispevka sem nato našel še nekoga drugega, ki se je poglobil v to, kako email-decode.min.js deluje. Slednji je objavil tudi prettified verzijo skripte.
Raziskovanje vsega tega mi je bilo nadvse zanimivo. Zdaj vem, kako zadeva deluje in kaj storiti, ko naslednjič naletim na tekst [email protected].