• Enterprise
  • Prețuri
AutentificareCreează cont
⌘K
Introducere
Primii pași
  • Instalare
  • Structura proiectului
Ghiduri
  • Elemente MDX
Integrări
  • AI Gateway
  • Hazeloft CDN
  • Security
    • Capabilități
    • Înregistrare
    • Dashboard
    • EmailEncrypt
    • Bune practici
  • Translator

Se încarcă documentația

Aplicații

  • DesktopÎn curând
  • Mail
  • Toate produsele

Platformă

  • AI
  • Agents
  • CDN
  • Host
  • Observability
  • Connect
  • Workflows
  • Plugin

Companie

  • Enterprise
  • Prețuri
  • Clienți
  • Despre noi

Resurse

  • Documentație
  • Contact

Legal & Trust

  • Documente legale
Alege tema afișată
IntegrăriSecurity

EmailEncrypt

Componentă React care ține adresele de email în afara HTML-ului livrat, ca harvesterele să nu le poată recolta — fără să afecteze SEO sau experiența utilizatorului.

Ultima actualizare: 1 august 2026

Orice mailto: scris direct în markup e cules de boții care descarcă pagina și caută adrese cu un regex — sursa clasică de spam. Verifică-ți propriul site:

Terminal
curl -s https://site-ul-tau.ro/contact | grep -o '[a-z0-9._+-]*@[a-z0-9.-]*'

Dacă apare ceva, adresa aia e deja în liste.

#Utilizare

ContactSection.tsx
import { EmailEncrypt } from "@hazeloft/security/react";
 
<EmailEncrypt mail="hello@exemplu.com" className="underline" fallbackHref="/contact" />

În HTML-ul livrat nu există nici adresa, nici mailto: — doar un token opac și o mască de aceeași lungime. După hidratare, linkul devine un mailto: normal.

#Cum funcționează

În HTML-ul pe care îl primește oricine descarcă pagina, adresa e înlocuită cu un cod ilizibil și o mască de aceeași lungime. Abia când pagina se încarcă în browser, codul e decodat și linkul devine un mailto: normal, pe care utilizatorul îl vede și îl copiază ca pe orice link. Masca păstrează lungimea adresei, ca să nu „sară" layout-ul la înlocuire.

Randeaz-o pe server

Ca protecția să fie reală, componenta trebuie să se randeze pe server (comportamentul ei implicit). Dacă o forțezi să ruleze în browser, adresa reală ajunge în datele trimise către pagină, de unde boții o pot citi oricum — iar componenta devine decorativă. În Next.js, las-o cum e (Server Component), nu pune "use client" deasupra.

#De ce nu strică SEO

Adresa de email nu influențează poziția în Google. Iar Googlebot încarcă și rulează JavaScript, deci vede linkul complet la fel ca un vizitator obișnuit. Singurii care nu-l văd sunt boții simpli care descarcă pagina și caută adrese fără să ruleze JS — exact cei de care vrei să scapi. E aceeași tehnică pe care o folosește Cloudflare, implicit, pe milioane de site-uri.

#Opțiuni

PropImplicitCe face
mail—adresa reală; nu ajunge niciodată în HTML-ul livrat
childrenadresa (mascată până la încărcare)eticheta vizibilă — nu scrie adresa în clar aici
className—clase CSS pentru link
subject / body—text precompletat în clientul de mail
fallbackHref—unde duce linkul pentru vizitatorii fără JavaScript
revealOn"mount""interaction" = adresa se activează abia la hover/click

#revealOn="interaction" — pragul mai dur

<EmailEncrypt mail="hello@exemplu.com" revealOn="interaction" fallbackHref="/contact" />

Cu această opțiune, adresa se activează abia când cineva trece cu mouse-ul peste link sau dă click. Prinde astfel și boții mai avansați, care încarcă pagina dar nu interacționează cu ea. Costul: adresa nu se vede dintr-o privire, ci doar la interacțiune.

#Cât de mult protejează

Ridică costul, nu e un seif

Un bot care chiar rulează JavaScript (ca Googlebot) poate obține adresa — la fel cum o obține și browserul unui om, altfel linkul n-ar funcționa. Ce elimină EmailEncrypt e categoria care produce spamul în masă: boții simpli care descarcă pagina și caută adrese cu un tipar, fără să execute JS. Pentru ei, adresa pur și simplu nu există în pagină.

#Fără React

Dacă nu folosești React, ai și funcțiile de bază, pentru orice framework:

import { obfuscateEmail, deobfuscateEmail } from "@hazeloft/security";
 
const token = obfuscateEmail("hello@exemplu.com");
deobfuscateEmail(token); // "hello@exemplu.com"

#Ce mai merită verificat pe site-ul tău

Adresa din pagina de contact e cea evidentă. În practică, adresele mai scapă în trei locuri ușor de uitat:

  1. Datele structurate pentru Google (schema.org), unde adresa firmei apare pe fiecare pagină. Pune acolo un link spre pagina de contact, nu adresa în clar.
  2. Capturi și demo-uri de produs care afișează o adresă reală ca text — folosește un domeniu de test (example.com).
  3. Mesaje de eroare de tipul „scrie-ne direct la…", care ajung în codul public al paginii.
AnteriorDashboardUrmătorBune practici

Pe această pagină

  • Utilizare
  • Cum funcționează
  • De ce nu strică SEO
  • Opțiuni
  • `revealOn="interaction"` — pragul mai dur
  • Cât de mult protejează
  • Fără React
  • Ce mai merită verificat pe site-ul tău