Skip to content

Sicurezza e privacy ​

Cosa impone il codice ​

Non devi ricordartele: un'installazione in produzione le applica da sola.

  • Segreti: lo stack non parte con segreti di esempio, corti o poco casuali. L'installer li genera.
  • Trasporto: l'indirizzo pubblico deve essere https, così i cookie di sessione sono sempre Secure. I certificati si rinnovano da soli.
  • Solo il web è esposto: database, archivio, api e worker restano su una rete interna.
  • Account: ogni account conferma l'email prima del primo accesso (il primo proprietario con il codice di setup); la registrazione è solo su invito; gli accessi falliti rallentano i tentativi successivi invece di bloccare l'account, e il proprietario viene avvisato dopo 10 fallimenti. L'autenticazione a due fattori (TOTP con codici di riserva) è disponibile per tutti, e proprietari e amministratori possono renderla obbligatoria.
  • Conteggio delle visite degli annunci pubblici: sono numeri aggregati per giorno, provenienza e campagna, senza cookie, archivio locale del browser, indirizzo IP o user agent conservati, e nulla che distingua due visitatori. Vedi Link tracciati.
  • Isolamento: ogni query è limitata a una sola organizzazione; ogni azione è controllata rispetto ai permessi della persona e scritta in un registro delle azioni non modificabile.
  • Le chiavi API scadono sempre e non hanno mai più permessi di chi le ha create.
  • I log non contengono mai i segreti dei link (recupero password, inviti, link di feedback e di consenso) né gli header.
  • I webhook non raggiungono mai indirizzi privati, di loopback o di metadati del cloud, e non seguono i redirect.
  • Caricamenti: CV e import vengono controllati in base al contenuto, e gli archivi si decomprimono con un tetto rigido.

Elenco completo: SECURITY.md, Secure defaults (in inglese).

Cosa resta a te ​

  • Tieni aggiornato il server e il firewall chiuso tranne 80, 443 e SSH.
  • Conserva /opt/candydati/.env in un gestore di password, e una copia dei backup fuori dal server.
  • Togli BOOTSTRAP_TOKEN quando il primo proprietario si è registrato.
  • Aggiorna Candydati quando una release corregge un problema di sicurezza (candydati update).

La checklist per chi gestisce l'installazione è in OPERATIONS.md (in inglese).

Segnalare una vulnerabilità ​

Non aprire una issue pubblica. Usa il canale privato di GitHub: la scheda Security del repository, poi Report a vulnerability. Dettagli e tempi di risposta: SECURITY.md.

Privacy e GDPR ​

In self-hosting la tua azienda è titolare del trattamento, e per la piattaforma non c'è un responsabile esterno: la gestisci tu. I fornitori che scegli (hosting del server, email, modello di AI) trattano dati per tuo conto e vanno nominati responsabili o sub-responsabili.

Cosa fa il prodotto per te:

RequisitoNel prodotto
Informativa e consensotesto versionato per organizzazione; ogni candidatura salva versione, data e ambito accettato
Ambiti di consenso separatila singola selezione oppure, con un consenso distinto e facoltativo, anche il database candidati per posizioni future
Conservazioneuna durata per ambito, con una scadenza calcolata su ogni candidato
Cancellazione automaticaun job giornaliero avvisa prima della scadenza, poi anonimizza o cancella, file compresi
Diritti dell'interessatoexport, correzione, cancellazione e ritiro del consenso dalla scheda del candidato
Registro delle azionichi ha visto, modificato, esportato o cancellato cosa; non modificabile
Minimizzazionenessun campo per dati particolari; l'estrazione dai CV scarta foto, data di nascita e stato civile
Nessuna decisione automatizzata (art. 22)nulla ordina, assegna punteggi o scarta i candidati; l'assistente scrive a un candidato solo dopo la conferma di una persona
Exportun archivio ZIP per candidato e l'export dell'intera organizzazione

Nell'app, Impostazioni, Privacy mostra il registro dei trattamenti compilato con i dati della tua organizzazione (nome, contatto, conservazione, fornitori configurati).

I modelli in italiano dell'informativa ai candidati, del registro dei trattamenti, dell'accordo sul trattamento dei dati e dell'elenco dei sub-responsabili sono in docs/legal. Sono punti di partenza e vanno fatti rivedere da un legale. Cosa resta a te: verificare quei documenti, valutare se servono una DPIA o un DPO, scegliere e motivare le durate di conservazione, istruire le persone che usano la piattaforma e rispondere alle richieste degli interessati entro un mese.

Codice disponibile con la Business Source License 1.1.