Glossario

Cos'è un honeypot? Protezione antispam senza CAPTCHA

20 maggio 2026

Un honeypot nei form web è un campo di input invisibile, nascosto agli utenti umani tramite CSS ma visibile ai bot automatici che effettuano il parsing dell'HTML. Poiché gli utenti reali non vedono mai (né compilano) il campo, qualunque invio con un honeypot non vuoto viene rifiutato come spam. La tecnica è stata resa popolare intorno al 2007 da blog antispam e dal plugin WordPress "Honeypot for Contact Form 7", ed è l'alternativa privacy-friendly ai CAPTCHA come Google reCAPTCHA — niente script di terze parti, niente cookie, nessun problema di accessibilità, nessun impatto sulla conversione.

Come funziona un honeypot?

Il server aggiunge un campo extra (spesso website, url, email_confirm). Viene nascosto via display: none, visibility: hidden, position: absolute; left: -9999px, <label> vuota o tabindex="-1" autocomplete="off". I bot riempiono indiscriminatamente ogni campo — anche la trappola. All'invio il server verifica:

  1. Campo vuoto → umano, procedi.
  2. Campo pieno → bot, scarta in silenzio o restituisci 200 OK senza salvare.

Honeypot vs CAPTCHA: cosa è meglio?

CriterioHoneypotCAPTCHA (reCAPTCHA)
Frizione utenteNessunaMedia–alta
Accessibilità (WCAG 2.2)ConformeServe audio
Privacy / GDPRNiente chiamate a terze partiScript Google, consenso necessario
Performance~0 KB~200 KB JS
Rilevamento bot~95 % spam basico~99 % anche bot smart
Impatto conversionNessuno3–29 % di calo

Per la maggior parte dei siti WordPress, honeypot + controllo temporale bloccano spam più che a sufficienza — senza il costo legale e UX di un CAPTCHA.

Come aggiungere un honeypot a un form WordPress?

Contact Form 7

Installa il plugin gratuito "Honeypot for Contact Form 7" (oltre 1 milione di installazioni attive) e aggiungi [honeypot website].

WPForms / Gravity Forms / Fluent Forms

Tutti e tre includono l'opzione honeypot integrata — un clic.

Form WordPress personalizzato

<p style="position:absolute;left:-9999px;" aria-hidden="true">
  <label for="website">Lascia questo campo vuoto</label>
  <input type="text" name="website" id="website" tabindex="-1" autocomplete="off">
</p>
if ( ! empty( $_POST['website'] ) ) {
    wp_die( 'Spam rilevato', 'Errore', array( 'response' => 200 ) );
}

Best practice per gli honeypot

  • Nomi plausibili come website, url, company.
  • Nascondi via CSS, non type="hidden".
  • tabindex="-1" + autocomplete="off".
  • aria-hidden="true" per screen reader.
  • Combina con controllo temporale — rifiuta invii sotto 2–3 s.
  • Restituisci 200 OK al rifiuto.

Quando l'honeypot non basta?

I bot avanzati che eseguono JS e rispettano la visibilità CSS (Puppeteer / headless Chrome) saltano l'honeypot. Per obiettivi ad alto valore (login, pagamento, lead-gen premium) combina honeypot + tempo + Cloudflare Turnstile o rate limiting. L'altro significato di "honeypot" — un server volutamente vulnerabile per studiare gli attaccanti — è un concetto distinto di cybersecurity.

Cosa controlla InspectWP

InspectWP analizza ogni form sulla pagina crawlata e segnala l'assenza di protezione antispam sui form di contatto e login. Rileva anche gli script di Google reCAPTCHA nella sezione GDPR.

Controlla subito il tuo sito WordPress

InspectWP analizza il tuo sito WordPress per problemi di sicurezza, problemi SEO, conformità GDPR e prestazioni — gratuitamente.

Analizza gratis il tuo sito