Generatore di security.txt — Crea e convalida un file RFC 9116

Crea un security.txt valido (RFC 9116) con i campi di contatto, scadenza, crittografia e policy, controlla un file esistente e scaricalo per /.well-known/.

Indirizzi email, moduli di segnalazione https:// o numeri di telefono. Agli indirizzi email semplici viene aggiunto mailto:. Metti per primo quello preferito.

Data-ora RFC 3339, a meno di un anno da oggi. Metti un promemoria nel calendario per rinnovarlo prima della scadenza.

URL della tua chiave pubblica PGP (https://, dns: o openpgp4fpr:), non la chiave stessa.

Tag di lingua separati da virgole, per esempio en, fr, pt-BR.

Gli URL https:// in cui si trova questo file. In pratica obbligatorio se lo firmi.

La tua policy di divulgazione delle vulnerabilità: ambito, safe harbour, come rispondi.

Una pagina che ringrazia i ricercatori che hanno segnalato problemi (hall of fame).

Posizioni aperte nel campo della sicurezza.

Per i vendor che pubblicano avvisi leggibili da macchina: URL di provider-metadata.json.

Valido: tutti i campi obbligatori sono presenti e ogni valore rispetta la RFC 9116.

security.txt
…
Dove metterlo
  • Servilo su https://yourdomain.com/.well-known/security.txt tramite HTTPS, come text/plain; charset=utf-8. Facoltativamente, reindirizza /security.txt a questo file.
  • Next.js, Astro, Vite e la maggior parte degli host statici: salvalo come public/.well-known/security.txt. WordPress, Apache o nginx: crea una cartella .well-known nella radice web.
  • Ogni sottodominio che serve un proprio sito dovrebbe avere il proprio file (o indicare quello principale in un commento).
  • Facoltativo: firmalo con gpg --clearsign security.txt e pubblica il risultato firmato; includi Canonical in modo che la firma copra anche la posizione.

Funziona interamente nel tuo browser. Nulla di ciò che inserisci viene inviato a noi o salvato. Sfoglia tutti gli strumenti gratuiti.

Hai trovato un problema o qualcosa che potrebbe andare meglio? Leggiamo ogni messaggio e sistemiamo le cose in fretta.

Questo generatore gratuito di security.txt crea il piccolo file di testo, standardizzato come RFC 9116, che spiega ai ricercatori di sicurezza come segnalare una vulnerabilità del tuo sito. Inserisci un contatto, una data di scadenza e, se vuoi, la tua chiave di crittografia, la policy di divulgazione, la pagina dei ringraziamenti, le lingue preferite e l'URL canonico; il file viene convalidato rispetto all'RFC mentre scrivi e si scarica come security.txt, pronto da caricare in /.well-known/security.txt.

Senza questo file, chi trova una falla nel tuo sito deve indovinare dove segnalarla, e le segnalazioni finiscono nella casella dell'assistenza, sui social o da nessuna parte. Il file richiede cinque minuti e viene controllato da molti scanner di sicurezza e ricercatori di bug bounty. La seconda scheda convalida un file che pubblichi già. Lo strumento non firma il file (per quello usa gpg) e non scarica il tuo file online, perché la pagina non effettua richieste di rete.

Come si usa

  1. Inserisci almeno un Contact: un'email per la sicurezza, l'URL di un modulo di segnalazione o un numero di telefono. Metti per primo quello preferito.
  2. Imposta Expires con uno dei pulsanti (sei mesi è un buon valore predefinito) o scrivi una data e ora RFC 3339.
  3. Aggiungi i campi facoltativi che hai: l'URL della tua chiave PGP, la policy di divulgazione, una pagina di ringraziamenti, le lingue che leggi e l'URL canonico del file.
  4. Correggi tutto ciò che è segnalato in rosso; le voci in giallo sono raccomandazioni.
  5. Scarica security.txt e pubblicalo su https://yourdomain.com/.well-known/security.txt, servito come text/plain. Imposta un promemoria per aggiornare Expires.

Domande frequenti

Che cos'è security.txt?

Un file di testo semplice in /.well-known/security.txt che indica come segnalare vulnerabilità di sicurezza in un sito web o in un prodotto. È stato pubblicato dall'IETF come RFC 9116 nell'aprile 2022. Solo due campi sono obbligatori, Contact ed Expires; gli altri (Encryption, Acknowledgments, Preferred-Languages, Canonical, Policy, Hiring) sono facoltativi.

Dove si mette il file security.txt?

In https://yourdomain.com/.well-known/security.txt, servito via HTTPS con content type text/plain; charset=utf-8. La vecchia posizione /security.txt nella radice viene ancora letta da alcuni strumenti; puoi servirne una copia lì o fare un reindirizzamento. In Next.js, Astro, Vite e nella maggior parte degli hosting statici, metti il file in public/.well-known/. Ogni hostname che è un sito a sé dovrebbe avere il proprio file.

Perché il campo Expires è obbligatorio?

Perché dei recapiti obsoleti non vengano considerati affidabili per sempre. L'RFC 9116 rende Expires obbligatorio e raccomanda una data entro un anno; una volta superata, ricercatori e scanner dovrebbero considerare il file non aggiornato. Sei mesi con un promemoria in calendario per il rinnovo sono un ritmo pratico, e il generatore avvisa quando la data è passata o è oltre un anno.

Conviene firmare security.txt?

La firma è facoltativa ma consigliata. Esegui gpg --clearsign security.txt con una chiave di cui pubblichi la parte pubblica (il campo Encryption può puntarvi) e carica al suo posto il risultato firmato. Se firmi, includi un campo Canonical, così una copia firmata presa da un URL non può essere spacciata per valida su un altro.

Posso usare come contatto il link di una piattaforma di bug bounty?

Sì. Contact accetta qualsiasi URI https://, quindi la pagina di un programma HackerOne, Bugcrowd, Intigriti o YesWeHack, o il tuo modulo di segnalazione, è valida. Molte organizzazioni indicano sia il link a una piattaforma sia un indirizzo email, in ordine di preferenza.

I campi RFC 9116 in breve

• Contact (obbligatorio, ripetibile): URI mailto:, https: o tel:. L'ordine indica la preferenza.

• Expires (obbligatorio, esattamente una volta): data e ora RFC 3339 come 2027-04-30T23:59:59Z; consigliata entro un anno.

• Encryption (ripetibile): dove trovare la tua chiave pubblica, come https://, dns: (record OPENPGPKEY) o openpgp4fpr: (impronta). Non incollare mai la chiave stessa.

• Acknowledgments (ripetibile): una pagina che ringrazia chi ha segnalato.

• Preferred-Languages (una volta): tag di lingua separati da virgole, es. en, fr.

• Canonical (ripetibile): l'URL o gli URL in cui questo file deve trovarsi.

• Policy (ripetibile): la tua policy di divulgazione delle vulnerabilità.

• Hiring (ripetibile): offerte di lavoro nel campo della sicurezza.

• CSAF (ripetibile, registrato da OASIS): il provider-metadata.json di un feed di advisory CSAF.

Gli URI web devono usare https://. Le righe che iniziano con # sono commenti.

Che cosa scrivere nella policy di divulgazione

Il link Policy è il punto in cui i ricercatori capiscono se segnalare è sicuro. Indica l'ambito (quali domini e app), cosa è escluso (denial of service, ingegneria sociale, output di scanner automatici), in quanto tempo confermerai e correggerai le segnalazioni, se offri ricompense e una clausola di safe harbour in cui ti impegni a non intraprendere azioni legali contro le ricerche in buona fede che rispettano la policy. Una pagina breve e chiara riceve segnalazioni più utili di un lungo testo legale.

security.txt e robots.txt

Stanno uno accanto all'altro ma svolgono compiti diversi: robots.txt chiede ai crawler cosa non scaricare, security.txt dice alle persone come raggiungere il tuo contatto per la sicurezza. Non inserire security.txt o /.well-known/ sotto Disallow: ricercatori e scanner devono poterlo leggere, e bloccarlo in robots.txt comunque non lo nasconde.

Strumenti gratuiti correlati

  • Generatore di robots.txt — Crea un robots.txt con preset per consentire tutto, ambienti di staging e WordPress, una sezione per i crawler IA (blocca l'addestramento, mantieni la ricerca IA) e avvisi per gli errori che deindicizzano i siti.
  • Generatore di password — Genera una password casuale sicura, una passphrase facile da ricordare o un PIN. Funziona interamente nel browser: nulla viene inviato o salvato.
  • Generatore di meta tag — Compila title, description e dettagli della social card di una pagina; ottieni un blocco <head> completo, con escape corretto e contatori di lunghezza in tempo reale.
  • Decoder JWT — Decodifica header e payload di un JWT, leggi la scadenza in parole semplici, verifica firme HS, RS, PS ed ES o firma un nuovo token. Nulla esce dal browser.