DB Privacy Hub
Open Source — GPL v2 DB Privacy Hub Hub privacy unificato per l’ecosistema plugin DB. Genera la Privacy Policy che…
Form builder per WordPress con la privacy come impostazione predefinita. Drag & drop, logica condizionale, prova del consenso per ogni risposta, retention automatica, richieste GDPR integrate. Dalla 2.21 le risposte si consultano da smartphone o PC in una web app installabile, con notifiche e, se usi WooCommerce, collegamento agli ordini. Niente account esterni, niente telemetria, niente versione Pro.
Il form è il punto in cui un sito raccoglie dati personali nel modo più diretto: nome, email, messaggi, documenti. Molti plugin si fermano lì, con un’email all’amministratore e una casella GDPR facoltativa. Il risultato è un’informativa che non descrive quello che il sito fa davvero e nessuna prova di chi ha accettato cosa.
DB Form Builder parte dall’idea opposta: la conformità è il comportamento predefinito, non un’opzione da ricordarsi di attivare. L’IP è salvato come hash, le risposte hanno una scadenza, gli allegati stanno in una cartella non accessibile dal web, ogni risposta conserva la prova del consenso e la forma esatta del modulo compilato. Le richieste di accesso e cancellazione passano dagli strumenti nativi di WordPress.
La serie 2.19–2.24 porta le risposte fuori dalla scrivania, con la stessa regola: sul telefono resta solo l’interfaccia, mai i dati.
IP come hash, retention automatica con cancellazione degli allegati, prova del consenso salvata con la risposta, reCAPTCHA caricato solo dopo il consenso.
Ogni risposta conserva testo del consenso, data, link all’informativa e versione della Privacy Policy, più le etichette dei campi com’erano al momento dell’invio.
Nessun servizio esterno obbligatorio. Web app e notifiche push sono implementate nel plugin, senza librerie di terze parti né account.
Funziona su un hosting da pochi euro: niente WebSocket né processi in background, compatibile con la cache di pagina, PHP 7.4+.
Con la 2.24.0 si chiude una serie di sei versioni dedicata a chi le risposte le deve seguire ogni giorno, anche lontano dal computer.
Su /dbfb-app/ del tuo sito: elenco dei form con le risposte nuove, filtri per stato, dettaglio con allegati. Si installa su Android, iPhone e PC, tema chiaro e scuro.
Notifiche push sul dispositivo, oppure ntfy e Telegram. Il messaggio dice solo “Nuova risposta” e il nome del form: mai i dati della risposta.
Un ruolo per collaboratori e segreterie: vedono le risposte nella web app e il proprio profilo, nient’altro dell’amministrazione.
Ogni risposta ha uno stato, anche nell’admin: filtri, azioni di massa, 50 risposte per pagina. Aprire una risposta la segna come letta.
Accanto alla risposta, gli ordini dello stesso cliente trovati per email o account. In home, gli ultimi ordini del negozio.
“Crea ordine” da una richiesta di preventivo: dati di fatturazione precompilati, importo libero, link di pagamento al cliente.
Si apre all’indirizzo https://tuosito.it/dbfb-app/ con il login di WordPress. Il link e le istruzioni sono in Form Builder → Web app.
| Dispositivo | Come |
|---|---|
| Android (Chrome) | Apri l’indirizzo, menu ⋮ → “Installa app” |
| iPhone e iPad (Safari) | Condividi → “Aggiungi alla schermata Home”. Le notifiche push richiedono iOS 16.4 o successivo e l’app aggiunta alla Home |
| PC (Chrome, Edge) | Icona di installazione nella barra degli indirizzi |
Il service worker tiene in memoria solo l’interfaccia: HTML, CSS, JavaScript e icone. Le risposte arrivano dal sito a ogni apertura e non vengono salvate sul telefono. La pagina dell’app non carica script del tema o di altri plugin e ha una Content Security Policy che permette connessioni solo verso il sito. Se il telefono viene perso, basta cambiare la password dell’utente.
Per dare l’accesso alle risposte a chi non deve vedere il resto del sito, crea un utente con il ruolo Gestore form. Dopo il login arriva direttamente all’app; se prova ad aprire l’amministrazione viene riportato lì. Resta raggiungibile solo il suo profilo, per cambiare la password. Gli ordini WooCommerce non li vede, a meno che tu non lo decida.
Si configurano in Form Builder → Web app → Notifiche, con un pulsante per inviare una prova.
| Canale | Quando usarlo |
|---|---|
| Push | Ogni utente le attiva dalla web app, sul singolo dispositivo. Arrivano anche con l’app chiusa. All’uscita dall’app la sottoscrizione del dispositivo viene revocata. |
| ntfy | Un topic su ntfy.sh o su un server tuo, con token facoltativo. Utile dove il push non arriva, per esempio iPhone senza app installata. |
| Telegram | Un bot che scrive in una chat o in un canale del team. |
Il Web Push è implementato nel plugin, senza Composer e senza librerie: firma VAPID e cifratura del messaggio (RFC 8291) con le funzioni OpenSSL di PHP. Funziona da PHP 7.4, anche sugli hosting che non hanno un file di configurazione OpenSSL. Il messaggio contiene solo “Nuova risposta”, il titolo del form (disattivabile) e il link all’app; l’invio parte dopo il salvataggio, quindi chi compila il form non aspetta.
Il modulo si attiva solo se WooCommerce è installato. È compatibile con l’archiviazione degli ordini ad alte prestazioni (HPOS) e con quella classica. Per vedere e creare ordini serve il permesso sugli ordini di WooCommerce, che hanno amministratore e Shop manager.
Nel dettaglio di una risposta compaiono gli ordini dello stesso cliente, trovati confrontando l’email della risposta con l’email di fatturazione e con gli account registrati. L’email viene confrontata, non copiata.
Risposta e ordine restano collegati nei due sensi. Il collegamento si cancella con la risposta (eliminazione, retention, richiesta GDPR); l’ordine resta, con le regole di conservazione di WooCommerce e gli obblighi fiscali.
Testo, email, area di testo, menu, caselle, scelta singola, telefono, numero, data, URL, upload, campo nascosto, più testo/HTML, immagine, separatore e cambio pagina per i form a più passi.
Mostra o nascondi campi in base alle risposte, con condizioni AND/OR. I campi nascosti non vengono validati né salvati.
Estensioni e dimensione per campo, controllo del tipo reale del file. I file stanno in una cartella con accesso diretto negato e si scaricano solo dall’amministrazione.
I campi si compilano da un link (?arrivo=2026-11-01). Compatibile con la cache di pagina.
Parametri UTM letti dall’indirizzo della pagina e salvati con la risposta, senza cookie né memoria nel browser.
Caselle per newsletter e marketing, mai obbligatorie, con prova per voce e link di revoca nell’email di conferma (art. 7.3).
Testi personalizzabili con segnaposto inseribili con un clic, più destinatari, documenti della Media Library nella conferma.
Sfondo, pulsanti e testo, globali o per form. Il contrasto dei pulsanti resta WCAG AA in automatico.
v2 o v3, caricato nel browser solo dopo il consenso marketing. Honeypot con token firmato e limite di invii per IP sempre attivi.
Invio asincrono con tentativi ripetuti, firma HMAC facoltativa e coda degli invii falliti consultabile dall’admin.
Un form come file JSON, per passarlo dal sito di test alla produzione. Gli indirizzi del sito vengono riscritti, il webhook arriva spento.
Blocco Gutenberg, shortcode e widget classico. Redirect dopo l’invio ed eventi JavaScript per misurare le conversioni.
| Aspetto | Come è gestito |
|---|---|
| Indirizzo IP | Hash SHA-256 con salt del sito (predefinito), nessun salvataggio, oppure in chiaro (sconsigliato). Gli header dei proxy sono ignorati, salvo dichiarazione esplicita via filter. |
| Conservazione | Risposte cancellate dopo N giorni (predefinito 365) da un cron giornaliero, insieme ad allegati, invii webhook e collegamenti agli ordini. |
| Prova del consenso | Testo letto, data, link all’informativa e versione della Privacy Policy (con DB Privacy Hub) salvati con ogni risposta (art. 7.1). |
| Forma del modulo | Ogni risposta conserva etichette e tipi dei campi al momento dell’invio: modificare il form non rende illeggibili le risposte vecchie. |
| Richieste GDPR | Esporta e Cancella dati personali di WordPress (artt. 15 e 17): risposte, allegati, consensi, invii webhook e ordini collegati. |
| Allegati | Nome del file con prefisso casuale, cartella con accesso diretto negato, download solo da admin o con link firmati a scadenza (webhook, web app). |
| Web app e notifiche | Nessuna risposta in cache sul dispositivo; notifiche senza dati delle risposte; sottoscrizioni push revocate all’uscita. |
| Registro dei trattamenti | Con DB Privacy Hub il plugin dichiara da solo i trattamenti attivi: risposte, email, reCAPTCHA, webhook, consensi, notifiche al personale, WooCommerce. |
Il form funziona con WP Rocket, LiteSpeed Cache e Cloudflare APO: l’HTML è uguale per tutti i visitatori e per gli anonimi l’invio non dipende da un nonce che scade in cache. La web app invia header no-store e segnala ai plugin di cache di non memorizzarla.
I webhook inoltrano le risposte a CRM, Make, Zapier o n8n. Se il server remoto non risponde, la risposta non va persa.
La firma HMAC SHA-256 facoltativa arriva nell’header X-DBFB-Signature, come nei webhook di GitHub e Stripe. Gli allegati viaggiano come link firmati validi 7 giorni. Lo storico è in Form Builder → Webhook Deliveries, con filtro per stato, ultimo errore e nuovo invio in blocco.
Il Form Builder funziona da solo. Se trova gli altri plugin della suite, le integrazioni si attivano senza configurazione.
DB Cookie Manager — il consenso del banner decide quando caricare reCAPTCHA (anche con altri banner compatibili con WP Consent API).
DB Privacy Hub — registro dei trattamenti, registro unificato dei consensi, storico delle richieste GDPR e versione della Privacy Policy collegata a ogni consenso.
WooCommerce — ordini del cliente e ordini dai preventivi nella web app.
Namespace dbfb/v1, con cookie e nonce dal sito oppure Application Passwords per i client esterni. Serve il permesso dbfb_view_submissions; limite di 120 richieste al minuto per utente.
curl -u "utente:xxxx xxxx xxxx xxxx xxxx xxxx" \
"https://tuosito.it/wp-json/dbfb/v1/submissions?status=new&per_page=10"
| Rotta | Uso |
|---|---|
GET /forms | Form con totale e risposte nuove |
GET /submissions | Risposte paginate, filtri per form, stato e since_id |
GET /submissions/{id} | Dettaglio con campi, allegati, consensi, provenienza |
PATCH /submissions/{id} | Cambio di stato: new, read, archived |
GET /stats | Risposte per giorno e per form |
GET /updates | Ultima risposta e nuove per form, per il polling |
| Hook | Uso |
|---|---|
dbfb_submission_saved | Action dopo il salvataggio di una risposta: $submission_id, $form_id, $form_data |
dbfb_consent_revoked | Action quando un consenso facoltativo viene revocato, per sincronizzare CRM e newsletter |
dbfb_order_created_from_submission | Action dopo la creazione di un ordine da una risposta |
dbfb_cleanup_submissions_done | Action dopo ogni esecuzione della retention |
dbfb_trust_proxy_headers | Filter: leggere l’IP dagli header del proxy (sito dietro un proxy fidato) |
dbfb_recaptcha_category | Filter: categoria di consenso richiesta per reCAPTCHA (predefinita marketing) |
dbfb_dsar_email_field_ids | Filter: campi da considerare come email dell’interessato |
dbfb_notification_message | Filter: testo delle notifiche (senza dati delle risposte) |
dbfb_orders_capability | Filter: permesso per vedere gli ordini nella web app |
L’elenco completo di filter e action è nel README su GitHub.
| Funzionalità | Prezzo |
|---|---|
| Form builder, logica condizionale, upload, form a più passi | GRATIS |
| Prova del consenso, consensi facoltativi, richieste GDPR, retention | GRATIS |
| Web app installabile, ruolo Gestore form, API REST | GRATIS |
| Notifiche push, ntfy, Telegram | GRATIS |
| Integrazione WooCommerce e ordini dai preventivi | GRATIS |
| Webhook con tentativi ripetuti e firma HMAC | GRATIS |
| Aggiornamenti automatici da GitHub | GRATIS |
| Supporto | Community (GitHub Issues) |
Nessuna versione Pro, nessun limite di form o risposte, nessuna registrazione.
.Per installarla e aprirla offline servono HTTPS e permalink diversi da “Semplice”. Se un plugin di sicurezza blocca /wp-json/, la pagina Form Builder → Web app lo rileva e mostra un avviso.
Funziona senza DB Privacy Hub?
Sì. Consenso, richieste GDPR e retention funzionano da soli; con l’Hub si aggiungono il registro dei trattamenti, il registro unificato dei consensi e il collegamento alla versione esatta della Privacy Policy.
La web app è un’app da scaricare dagli store?
No. È una pagina del tuo sito che si installa come un’app (PWA): niente store, niente account, niente server di terze parti. Si aggiorna con il plugin.
Le notifiche passano da server esterni?
Il push passa dal servizio del browser (Google, Mozilla, Apple, Microsoft), come qualsiasi notifica web, ma il messaggio è cifrato per il singolo dispositivo e non contiene dati delle risposte. ntfy e Telegram, se li attivi, ricevono solo il testo dell’avviso. I canali attivi sono dichiarati nel registro dei trattamenti.
Serve WooCommerce?
No. Il modulo WooCommerce si carica solo se WooCommerce è attivo; senza, la web app mostra solo form e risposte.
Funziona su hosting condiviso?
Sì, è pensato per questo: niente WebSocket né processi sempre attivi. L’app controlla le novità ogni 15 secondi solo mentre è aperta e in primo piano (intervallo regolabile), con una richiesta leggera.
Dove finiscono gli allegati?
In wp-content/uploads/dbfb/, fuori dalla Media Library, con nome reso imprevedibile e accesso diretto negato. Su Nginx serve una regola nella configurazione del server, che il plugin suggerisce. Si cancellano con la risposta.
Aggiornando dalle versioni precedenti perdo qualcosa?
No. Le migrazioni del database sono automatiche e ripetibili; le risposte già presenti diventano “lette”, così l’archivio non compare tutto come nuovo.
Ordine WooCommerce da una risposta
Ordini del cliente nella web app
Aggiornamenti in tempo reale e notifiche push, ntfy, Telegram
Web app installabile delle risposte
API REST e ruolo Gestore form
Stato delle risposte, filtri e paginazione
Le versioni dalla 2.12 alla 2.18 hanno aggiunto form compatibili con la cache di pagina, allegati protetti, documenti nella conferma, precompilazione da URL, consensi facoltativi con revoca, provenienza delle campagne ed esportazione dei form. Changelog completo su GitHub.
Open Source — GPL v2 DB Privacy Hub Hub privacy unificato per l’ecosistema plugin DB. Genera la Privacy Policy che…
Open Source — GPL v2 DB SEO Manager SEO completa per WordPress, costruita prima di tutto per il GDPR. Niente…
DB Site Analytics Tracciamento visite server-side: nessun cookie, nessun servizio esterno, solo visite reali. I dati restano nel tuo database.…