=== CRA Vuln Notify ===
Contributors: macroncode
Tags: security, vulnerability, compliance, cra, wordpress security
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 0.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Monitora le vulnerabilità di plugin/temi e gestisce le scadenze di notifica del Cyber Resilience Act (CRA), con dashboard e bozze pronte all'uso.

== Description ==

Il Cyber Resilience Act (CRA) dell'UE impone a chi sviluppa o gestisce software — anche le piccole agenzie che seguono siti WordPress per conto di clienti — di notificare entro tempi stretti le vulnerabilità note nei componenti che usano, se risultano attivamente sfruttate. **CRA Vuln Notify** automatizza la parte più dispendiosa di questo obbligo: sapere che una vulnerabilità esiste, capire quanto è urgente, e non perdere le scadenze.

= Come funziona =

1. **Scansiona** ogni giorno (o su richiesta, con un clic dalla dashboard) tutti i plugin e i temi installati, confrontando le versioni con un database di vulnerabilità note.
2. **Classifica** ogni vulnerabilità trovata per gravità — critica, alta, media, bassa — e verifica se risulta attivamente sfruttata.
3. **Avvia la timeline CRA** per le vulnerabilità attivamente sfruttate: notifica preliminare entro 24 ore dalla scoperta, notifica completa entro 72 ore, notifica finale alla chiusura — con countdown sempre visibili in dashboard.
4. **Avvisa** via email e con un banner in wp-admin non appena emerge una vulnerabilità critica, così non serve controllare la dashboard ogni giorno per accorgersene.
5. **Genera una bozza di documento di notifica** compilabile, pronta da adattare per l'invio all'autorità competente (CSIRT nazionale / ENISA) o agli utenti finali, con log completo esportabile in CSV per finalità di audit.

= Provider di vulnerabilità, senza vincoli =

Funziona da subito con **WPScan** (gratuito, richiede solo una API key gratuita presso il provider), oppure — se serve più margine di richieste giornaliere — con **Patchstack** (a pagamento). Il provider si sceglie dalle Impostazioni, senza dover cambiare nient'altro.

= Pensato per chi segue più siti =

La dashboard mostra in un colpo d'occhio dove c'è da intervenire e quanto tempo resta per farlo, invece di scoprire una vulnerabilità critica per caso durante un controllo di routine.

**Nota importante**: questo plugin è uno strumento di supporto operativo, non un servizio di consulenza legale. I documenti generati sono bozze da verificare e adattare: confermare sempre gli obblighi normativi applicabili con un consulente legale/compliance qualificato prima di considerarsi conformi.

== External services (servizi esterni) ==

Questo plugin si collega a database di vulnerabilità di terze parti per verificare i plugin e i temi installati sul sito. Viene contattato solo uno dei due servizi sottostanti, in base a quale selezioni in Impostazioni; entrambi sono documentati qui perché entrambi sono selezionabili.

**WPScan Vulnerability Database** (predefinito, wpscan.com)
Usato per verificare le vulnerabilità note di un plugin o tema. Per ogni componente installato, il plugin invia lo slug del componente (il nome tecnico/della cartella, es. "akismet") a https://wpscan.com/api/v3/plugins/{slug} o https://wpscan.com/api/v3/themes/{slug}, insieme alla API key configurata in Impostazioni. Non viene inviato il numero di versione installata, l'URL del sito, dati utente o qualunque informazione personale — solo lo slug del componente. La richiesta avviene una volta per ogni componente installato, durante la scansione giornaliera pianificata (WP-Cron) e ogni volta che si clicca "Scansiona ora" nella dashboard.
Termini di Servizio: https://wpscan.com/terms/
Informativa Privacy: https://automattic.com/privacy/

**Patchstack Vulnerability Database** (opzionale, a pagamento, patchstack.com)
Usato per verificare le vulnerabilità note dei plugin e temi installati sul sito. Il plugin invia, in blocchi fino a 50 componenti, lo slug, il tipo (plugin/tema) e la versione installata di ciascun componente a https://patchstack.com/database/api/v2/batch, insieme alla API key configurata in Impostazioni. Non vengono inviati l'URL del sito, dati utente o qualunque informazione personale — solo slug, tipo e versione dei componenti. La richiesta avviene durante la scansione giornaliera pianificata (WP-Cron) e ogni volta che si clicca "Scansiona ora" nella dashboard, solo se Patchstack è il provider attivo.
Termini di Servizio: https://patchstack.com/terms-and-conditions/
Informativa Privacy: https://patchstack.com/privacy-policy/

Come ogni richiesta HTTP, le chiamate a entrambi i servizi includono i metadati di connessione standard (es. l'indirizzo IP del server) come parte del protocollo di rete sottostante; il plugin non aggiunge né trasmette alcun dato identificativo dell'utente oltre a quanto descritto sopra.

== Installation ==

1. Carica la cartella `cra-vuln-notify` in `/wp-content/plugins/`.
2. Attiva il plugin dal menu "Plugin" di WordPress.
3. Vai su "CRA Vuln Notify" > "Impostazioni", scegli il provider di vulnerabilità (WPScan o Patchstack) e inserisci la relativa API key.
4. Il plugin eseguirà una scansione giornaliera automatica; è possibile avviare una scansione manuale dalla dashboard.

== Frequently Asked Questions ==

= Quale database di vulnerabilità viene usato? =

Di default il plugin usa la WPScan Vulnerability Database API, che offre un piano gratuito con una quota di 25 richieste/giorno (sufficiente per siti con pochi plugin/temi; con installazioni più grandi la scansione completa può richiedere più giorni). In alternativa è possibile passare a Patchstack, provider a pagamento senza questo limite. In entrambi i casi è richiesta una API key registrata autonomamente dall'utente presso il provider scelto.

= Il plugin invia automaticamente le notifiche alle autorità? =

No. Il plugin genera il documento di notifica con i campi richiesti e ne tiene traccia nel log, ma l'invio effettivo alle autorità competenti resta un'azione manuale dell'utente, salvo integrazioni future.

== Changelog ==

= 0.1.0 =
* Struttura iniziale del plugin: attivazione, creazione tabelle database, opzioni di default.
* Scansione plugin/temi installati con provider vulnerabilità pluggable (WPScan default, Patchstack a pagamento), cron giornaliero, cache/rate-limit.
* Classificazione severità (CVSS) e calcolo/mantenimento della timeline di notifica CRA (24h/72h/finale) per le vulnerabilità attivamente sfruttate.
* Dashboard amministrativa (Componenti a rischio, Notifiche, Impostazioni) con marcatura manuale "attivamente sfruttata", azione "Segna risolta", admin notice per vulnerabilità critiche.
* Generazione del documento di notifica (bozza testuale compilabile, scaricabile in .txt) ed export CSV del log notifiche per finalità di audit.
* Email automatica all'indirizzo configurato quando viene rilevata una nuova vulnerabilità attivamente sfruttata; pulizia completa di tabelle/opzioni alla disinstallazione.
* Inglese come lingua sorgente, completamente predisposto per la traduzione (le traduzioni sono gestite tramite translate.wordpress.org).

== Upgrade Notice ==

= 0.1.0 =
Prima versione (MVP in sviluppo).
