Guida all'installazione

Due cose devono essere attive sul tuo sito: l'avviso che vedono i tuoi visitatori e un piccolo file pubblico che dichiara il tuo uso dell'IA (iltuosito.com/.well-known/ai-disclosure.json). Il tag dello snippet si incolla una sola volta, è identico su ogni pagina, e la tua dichiarazione decide quali avvisi compaiono e dove. Scegli la tua piattaforma qui sotto; la maggior parte richiede circa dieci minuti.

1 · Mostra gli avvisi

Banner ed etichette IA che i tuoi visitatori vedono sulla pagina.

2 · Pubblica la tua dichiarazione

ai-disclosure.json, un file pubblico leggibile dal tuo dominio.

Hai finito quando

il verificatore mostra Livello 2 · Visualizzato.

Scegli la tua piattaforma

WordPress

  1. Installa il plugin

    Nella tua area di amministrazione WordPress: Plugin → Aggiungi nuovo → Carica plugin, scegli il file che hai scaricato qui sotto, poi fai clic su Attiva.

    Scarica il plugin AIDisclose (.zip)

  2. Lascia che svolga entrambi i compiti

    Il plugin mostra gli avvisi e pubblica automaticamente il tuo file di dichiarazione. Marca i contenuti IA su qualsiasi articolo o immagine con il relativo interruttore "Contenuto IA". Nessuna modifica al codice.

  3. Verifica

    Fatto quando il verificatore mostra Livello 2 · Visualizzato.

    Avvia il verificatore

Verifica

Avvia il verificatore. Conferma tre cose: che il tuo file di dichiarazione è valido, che lo snippet è in funzione e che gli avvisi compaiono effettivamente sulla pagina. (Per i tecnici: controlli C1, C3 e da C4 a C6.)

Avvia il verificatore

Se il tuo sito blocca il nostro verificatore (AIDiscloseBot)

Le scansioni e le acquisizioni di prove provengono da AIDiscloseBot/1.0. Legge solo pagine pubbliche: non effettua mai l'accesso, non invia mai moduli e rispetta robots.txt. Se il tuo robots.txt o la tua protezione anti-bot blocca i crawler sconosciuti, consentilo esplicitamente:

robots.txt
User-agent: AIDiscloseBot
Allow: /

Consentirlo è un rischio? No. Un permesso in robots.txt non concede alcun accesso. Comunica solo ai bot rispettosi che possono leggere pagine già pubbliche. Chiunque può falsificare una stringa User-Agent, ma un falsificatore non ottiene nulla che le tue pagine pubbliche non diano già.

Se filtri il traffico con un WAF o un bot manager, non inserire mai nella whitelist solo in base allo User-Agent. Abbinalo alla verifica della fonte. Pubblichiamo l'identità del nostro crawler, e gli intervalli di IP in uscita man mano che vengono predisposti, su aidisclose.io/bot.json.

Avvia il verificatore

Avanzate

Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.

Blocca lo script a una versione esatta (SRI)

Un hash di integrità nel tag script fa sì che il browser rifiuti di eseguire un file modificato. Fissa l'URL con la versione e genera l'hash dal file esatto che distribuisci:

shell
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Servi tu stesso il file (nginx / Apache)

Per i server che controlli, servi direttamente il file ai-disclosure.json scaricato:

nginx
location = /.well-known/ai-disclosure.json {
  alias /var/www/site/ai-disclosure.json;
  default_type application/json;
  add_header Cache-Control "max-age=3600";
}
Apache
Alias "/.well-known/ai-disclosure.json" "/var/www/site/ai-disclosure.json"
<Files "ai-disclosure.json">
  ForceType application/json
</Files>
Servi dal tuo dominio il file ospitato nella dashboard

Il tuo server inoltra a noi le richieste per quell'unico indirizzo: tu modifichi il file nella dashboard e continua a essere servito dal tuo dominio. La dashboard mostra queste righe precompilate con la tua chiave del sito.

nginx
location = /.well-known/ai-disclosure.json {
  proxy_pass https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY;
  proxy_set_header Host cdn.aidisclose.io;
  proxy_ssl_server_name on;
}
Cloudflare Worker
export default {
  async fetch(request) {
    const url = new URL(request.url);
    if (url.pathname === "/.well-known/ai-disclosure.json") {
      return fetch("https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY");
    }
    return fetch(request);
  }
};
App a pagina singola e host statici

I framework che riscrivono ogni route su index.html, così come alcuni host statici, intercettano /.well-known/ai-disclosure.json e restituiscono l'HTML della tua applicazione con uno stato 200. Il file sembra presente nel repository, ma il verificatore legge l'HTML invece del manifest. Due soluzioni: escludi /.well-known/ dalla riscrittura globale in modo che il file statico venga servito con il tipo application/json, oppure aggiungi data-aidisclose="YOUR_SITE_KEY" al tag script per caricare il manifest ospitato da AIDisclose e non servire più il file.

netlify.toml / vercel.json
# netlify.toml: serve the real file before the SPA fallback
[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200
  force = false   # a real file at the path wins over this fallback

# vercel.json: rewrite everything EXCEPT /.well-known to the app
{ "rewrites": [
  { "source": "/((?!\.well-known/).*)", "destination": "/index.html" }
] }