Live · stato OK
OW Consent · v1.4.3 · GPL-2.0-or-later

Il consenso WordPress
che blocca prima del clic.

OW Consent neutralizza i traccianti nell'HTML prima che il visitatore abbia scelto, applica il regime giuridico della sua giurisdizione e iscrive ogni decisione in un registro concatenato che puoi verificare. Undici profili di conformità, nove regimi nominati — dal GDPR al CCPA. Gratuito, GPL, senza versione Pro.

v1.4.3GPL-2.0-or-laterWordPress 6.2+PHP 7.4+
Perché

Perché l'ennesimo plugin di consenso?

Il banner non è mai stato il problema. Ce l'hanno quasi tutti i siti, e i traccianti partono lo stesso al primo byte: lo script di Analytics è scritto a mano nel tema, il pixel pubblicitario gira dal footer, l'iframe di YouTube deposita i suoi cookie mentre il banner compare sopra. A quel punto il clic su «Accetta tutto» non autorizza più niente: ratifica ciò che è già successo.

La seconda trappola è la cache. Appena un plugin decide l'HTML leggendo il cookie del visitatore, diventa incompatibile con una cache di pagina — o peggio, serve le scelte di un visitatore a un altro. La terza è la prova: l'articolo 7.1 chiede di dimostrare il consenso, e una casella spuntata da qualche parte nel database non dimostra proprio nulla.

OW Consent parte da questi tre vincoli. Il markup servito è identico per tutti, traccianti neutralizzati inclusi, ed è il browser a liberare ciò che il visitatore ha concesso. Ogni decisione viene aggiunta a una catena di hash firmata. E il regime applicato — opt-in o opt-out, link «Do Not Sell», segnale GPC vincolante o meno — segue la giurisdizione, non una casella predefinita.

Un banner che arriva dopo i traccianti

In modalità strict, attiva di default, il documento viene riscritto in uscita: script neutralizzati in text/plain, iframe spostate su about:blank dietro un riquadro cliccabile, pixel sostituiti da una GIF trasparente, resource hint di connessione rimossi. Il visitatore che non clicca mai non carica mai queste risorse.

La cache di pagina contro il consenso

Niente di ciò che sta sul percorso di rendering legge il cookie. Lo stato del visitatore viene ricostruito nel browser e applicato al tag html prima della prima visualizzazione. LiteSpeed, WP Rocket, Varnish o una CDN possono mettere la pagina in cache senza mai mescolare due visitatori.

Una prova che non si riesce a produrre

Ogni evento entra in una tabella concatenata, ogni riga firmata in HMAC con l'hash della precedente, l'ancora di testa conservata fuori tabella. E se il registro rifiuta di scrivere, l'API risponde 503, annulla il cookie e non libera alcun tracciante: un consenso che il sito non sa dimostrare è un consenso che non rivendica.

Sotto il cofano

Cosa cambia davvero

Niente slogan. Ecco le decisioni tecniche che distinguono questo prodotto.

I traccianti sono bloccati nel markup

In modalità strict — attiva di default — l'intero documento viene catturato in uscita e riscritto in cinque passaggi: gli script diventano type text/plain con la loro URL riposta in data-owc-src, le iframe passano su about:blank dietro un riquadro «Accetta» con il nome del fornitore, i pixel di misurazione sono sostituiti da una GIF 1×1 trasparente, i preconnect e i dns-prefetch vengono rimossi (un semplice hint apre già una connessione TLS e consegna l'IP), e i media di terze parti già catalogati perdono l'autoplay. Il catalogo incluso conta 175 firme per 71 fornitori, e puoi aggiungerne, correggerne o eliminarne dall'amministrazione. Di default uno script di terze parti sconosciuto passa, un'iframe sconosciuta viene bloccata.

Progettato per girare dietro una cache di pagina

Niente di ciò che il server produce dipende dal cookie del visitatore: gli stessi tag neutralizzati vengono serviti a tutti, e il runtime li ripristina nel browser, nell'ordine del documento, solo per le categorie concesse. Lo stato viene marcato sul tag html prima della prima visualizzazione, quindi nessun banner che lampeggia. Il token di scrittura viene recuperato fresco prima di ogni invio, mai incorporato in HTML messo in cache: il suo recupero è limitato a 4 secondi e la sua assenza non blocca mai una scelta.

Undici profili di conformità, nove regimi nominati

GDPR, UK PECR, nLPD svizzera, Legge 25 del Québec, LGPD, CCPA, POPIA, PIPL, DPDP indiana, più un profilo australiano e un profilo statunitense generico. Il profilo non è decorativo: decide il modello giuridico (opt-in, oppure concesso fino al rifiuto per CCPA, US generico e Australia), la presenza del link «Do Not Sell or Share» — un clic esegue davvero l'opt-out, non apre un pannello —, il carattere vincolante o meno del segnale Global Privacy Control, e la lingua come pure l'autorità di controllo citate nei documenti generati. Il rilevamento per paese esiste, disattivato di default.

Un registro dei consensi che puoi verificare

Ogni accettazione, rifiuto, modifica o revoca entra in una tabella dedicata: riga firmata in HMAC-SHA-256 (o SHA3-256) con l'hash della precedente, ancora di testa conservata fuori tabella perché un troncamento si veda. Vengono iscritti un token di browser pseudonimo, l'IP troncato, un'impronta dello user-agent, la pagina, il profilo in vigore, la revisione esatta del banner mostrato e l'impronta delle informative collegate — mai un nome né un indirizzo. Un pulsante verifica l'intera catena e indica dov'è la rottura; l'export CSV o JSON porta un involucro che permette a un terzo di ri-verificare un estratto. Conservazione predefinita: 5 anni.

Scanner del sito e catalogo modificabile

Fornito disattivato, da attivare quando vuoi: lo scanner percorre le tue pagine su WP-Cron (25 URL di default, regolabili fino a 500) alternando home, pagine, articoli, tipi di contenuto e tassonomie. Tre fonti distinte e tracciate: l'HTML servito, le intestazioni Set-Cookie — gli unici cookie che una scansione lato server può dimostrare, e gli unici che nulla può bloccare — e una sonda in pagina riservata agli amministratori connessi, che intercetta ciò che un tag manager inietta a runtime. Un rilevamento diventa una regola di catalogo con un clic. E il rapporto dice ciò che non ha letto, invece di far passare una scansione parziale per un inventario.

Documenti legali e portale delle richieste

Quattro documenti generati come pagine WordPress versionate — cookie policy, informativa privacy, note legali, condizioni generali — nella lingua della giurisdizione (francese, inglese, portoghese), con l'autorità di controllo e la tabella dei traccianti ricavata dalla scansione. La pubblicazione viene rifiutata finché un campo obbligatorio per legge resta vuoto, e ogni documento porta un avvertimento che ricorda di farlo rileggere. Sul fronte dei diritti, lo shortcode owc_dsar_form apre sette tipi di richiesta, verificate con un giro di e-mail; il termine dell'articolo 12.3 parte dalla conferma dell'identità, e la richiesta apre in parallelo una richiesta nativa di WordPress perché l'export o la cancellazione copra tutti i plugin del sito.

Confronto

Rispetto alle alternative

Dati verificabili. Spuntare solo ciò che esiste davvero nella concorrenza.

CriterioOW ConsentComplianzCookieYesBorlabs Cookie
Modello economicoGratuito, GPL-2.0-or-laterFreemium (Pro a pagamento)Freemium (Pro a pagamento)Non dichiarato
Chiave di licenza da attivareNessunaPer la versione ProPer la versione ProNon dichiarato
Metodo di blocco dei tracciantiRiscrittura dell'HTML lato server, 175 firme incluse e modificabiliNon dichiaratoNon dichiaratoNon dichiarato
Registro delle prove concatenato e verificabileCatena HMAC-SHA-256, ancora fuori tabella, verifica con un clicNon dichiaratoNon dichiaratoNon dichiarato
Profili di conformità inclusi11 profili, 9 regimi nominatiNon dichiaratoNon dichiaratoNon dichiarato
Banner di consenso configurabile4 posizioni, tema chiaro / scuro / auto
Portale per le richieste di esercizio dei dirittiIncluso: modulo, verifica via e-mail, termine art. 12.3Non dichiaratoNon dichiaratoNon dichiarato
Dove risiedono i consensi registratiNel database del tuo hosting, nessun servizio terzoNon dichiaratoNon dichiaratoNon dichiarato
Integrazione

Tre modi per integrare un modulo

Nessun page builder proprietario imposto. Scegli l'approccio adatto al tuo stack.

<!-- Ciò che stampa il tuo tema -->
<script src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<iframe src="https://www.youtube.com/embed/VIDEO_ID"></iframe>

<!-- Ciò che riceve il visitatore prima di qualsiasi consenso (modalità strict, di default) -->
<script type="text/plain"
        data-owc-cat="analytics"
        data-owc-vendor="Google"
        data-owc-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>

<span class="owc-embed-placeholder" data-owc-cat="social" data-owc-vendor="Google">
  <span class="owc-embed-text">Google content blocked: this content uses cookies…</span>
  <button type="button" class="owc-embed-accept" data-owc-cat="social">Accept Google</button>
  <iframe data-owc-cat="social"
          data-owc-src="https://www.youtube.com/embed/VIDEO_ID"
          src="about:blank"></iframe>
</span>

<!-- Questo markup è lo stesso per tutti, cache di pagina compresa.
     È il runtime, nel browser, a ripristinare i tag delle categorie
     concesse, nell'ordine del documento. Una revoca del consenso
     ricarica la pagina: uno script già eseguito non si scarica. -->
Domande tecniche

Dubbi ragionevoli, risposte dirette

I traccianti sono davvero bloccati prima del consenso?

Sì, e il blocco vive nel markup, non in una promessa. In modalità strict, attiva di default, il documento viene catturato in uscita e cinque passaggi riscrivono script, iframe, pixel, resource hint di connessione e media di terze parti. Due limiti che devi conoscere: il blocco reale poggia sul catalogo di 175 firme e sulle firme di codice inline — uno script di terze parti sconosciuto è autorizzato di default, un'iframe sconosciuta è bloccata —, e se disattivi la modalità strict vengono trattati solo gli script registrati da WordPress, non quelli scritti a mano nel tema. Infine, un documento di oltre 8 MB o un errore del motore delle espressioni regolari viene servito intatto invece che rotto.

È compatibile con la mia cache di pagina?

Sì, è il vincolo di partenza. L'HTML servito è identico per tutti i visitatori, traccianti neutralizzati compresi, e lo stato di consenso viene ricostruito nel browser a partire dal cookie e applicato prima della prima visualizzazione. Nessuna cache può quindi servire le scelte di un visitatore a un altro. Il contraltare è esplicito: il regime del visitatore è deciso lato client, quindi senza JavaScript non viene registrato nulla. Un visitatore senza JavaScript vede un blocco noscript, non carica nulla di non essenziale, e non resta mai chiuso dietro una finestra che non può chiudere.

Che cosa cambia concretamente il profilo di conformità?

Decide il modello giuridico: opt-in per GDPR, UK PECR, nLPD svizzera, Legge 25, LGPD, POPIA, PIPL e DPDP; concesso fino al rifiuto per CCPA, profilo statunitense generico e Australia. Decide anche la comparsa del link «Do Not Sell or Share» (solo CCPA e US generico), il carattere vincolante del segnale GPC (gli stessi due profili: altrove il segnale è riflesso a schermo ma non viene registrato nulla), e la lingua come pure l'autorità di controllo dei documenti generati. Il rilevamento per paese è facoltativo e disattivato di default; fallisce in chiusura, cioè verso il regime più severo. Due limiti dichiarati: nessuna granularità per singolo Stato americano né per provincia canadese, e il file MaxMind non viene scaricato dal plugin né è caricabile tramite di esso — lo depositi tu stesso in uploads/ow-geoip/.

Il registro dimostra davvero qualcosa?

Dimostra quanto vale la chiave che lo firma, e il plugin te lo dice francamente. Ogni riga è firmata in HMAC con l'hash della precedente e l'ancora di testa è conservata fuori dalla tabella, così che una modifica, un troncamento o uno svuotamento si vedano alla verifica. Ma se AUTH_KEY e AUTH_SALT non sono nel tuo wp-config.php e non hai definito OWC_LEDGER_KEY, la chiave proviene dal database: chiunque abbia accesso al database può ri-firmare la catena. In quel caso il plugin mostra un avviso in amministrazione e dichiara da sé che la catena non è più a prova di manomissione, invece di continuare ad affermarlo.

Il modulo IAB TCF rende il mio sito una CMP certificata?

No, ed è importante dirlo prima di adottarlo, non dopo. Il modulo implementa TCF v2.2 lato browser — API __tcfapi, stringa TC codificata, cookie euconsent-v2 — ma non fornisce un CMP ID: quello viene assegnato da IAB Europe dopo la registrazione, e senza di esso il modulo non emette assolutamente nulla. Anche il perimetro è delimitato: solo segmento Core, nessuna publisher restriction emessa, due funzionalità speciali supportate, nessuna portata globale. In chiaro: funziona come una CMP compatibile non ufficiale, il che basta per molte integrazioni ma non sostituisce una registrazione ufficiale — Google AdSense, in particolare, la rifiuta in produzione nel SEE. Il modulo è disattivato di default.

Che cosa succede se disattivo o se elimino il plugin?

Una disattivazione non tocca alcun dato: si limita a rimuovere le attività pianificate. All'eliminazione, due cose spariscono sempre, qualunque sia la tua impostazione: le attività pianificate e la tabella delle richieste di esercizio dei diritti, unica tabella a contenere dati direttamente identificativi di terzi che, una volta rimosso il plugin, nulla limita più. Il resto — registro dei consensi, rilevamenti dello scanner, catalogo dei traccianti — sopravvive, a meno che tu non abbia spuntato esplicitamente la cancellazione completa, deselezionata di default: la tua prova del consenso ai sensi dell'articolo 7.1 non deve sparire con una disinstallazione.

Gratuito. Senza asterischi.

Nessuna versione Pro, nessuna chiave di licenza.

OW Consent è pubblicato con licenza GPL-2.0-or-later. Tutto quello che questa pagina descrive si trova nello .zip che scarichi: nessun modulo riservato, nessun abbonamento, nessun limite al numero di pagine, di consensi o di richieste.

  • È tutto incluso: banner, blocco dei traccianti, scanner, catalogo modificabile, registro concatenato, generatore di documenti, portale delle richieste, Consent Mode v2, TCF v2.2 e Global Privacy Control.
  • Lo .zip si scarica da optionweb.dev: installalo da Plugin → Aggiungi nuovo → Carica plugin. WordPress 6.2 minimo — sotto quella versione il plugin si rifiuta di partire e lo dice, invece di mostrare un banner che non blocca nulla.
  • Nessun servizio terzo, nessuna verifica di licenza, nessun tracciante aggiunto: consensi, richieste e documenti restano nel database del tuo hosting.
  • Il codice è sotto GPL-2.0-or-later, leggibile e modificabile, con i suoi punti di estensione documentati: filtri owc_settings, owc_scripts_catalog, owc_blocker_allowlist, owc_policy_template, e le azioni del registro.
Realizzato da Julien Daniel · Châtelet, Belgio