Documentazione · Documentazione per gli sviluppatori

Controlli di sicurezza e permessi

Questa pagina descrive intenzionalmente il modello di sicurezza del plugin solo a livello generale. Gli identificatori dei permessi, i nomi delle azioni nonce, l'implementazione dell'archiviazione dei segreti, la firma delle richieste non presidiate e altri dettagli interni rilevanti per la sicurezza non sono pubblicati qui.

Il modello di sicurezza in sintesi

  • Amministrazione protetta da permessi. L'amministrazione del plugin è limitata agli utenti con il permesso WordPress appropriato. L'assegnazione di tale permesso è gestita tramite il sistema dei ruoli di WordPress.
  • Autenticità delle richieste. Le operazioni amministrative privilegiate (moduli ed endpoint admin-AJAX) verificano un nonce specifico per azione prima di eseguire qualsiasi operazione.
  • Automazione non presidiata. Quando il plugin espone un endpoint richiamabile per pianificatori esterni, questo è protetto da un segreto lato server gestito dall'interfaccia di amministrazione del plugin; il segreto non viene mai mostrato nella pagina.
  • Misure di sicurezza standard di WordPress. Tutti gli input vengono sanificati e tutti gli output vengono sottoposti a escape utilizzando le API di WordPress appropriate.

Per le convenzioni di sanificazione supportate e utilizzate all'interno del codice del plugin, consultare Sanificazione ed escape.

Linee guida operative

  • Concedere i permessi di gestione del plugin solo ai ruoli che ne hanno effettivamente bisogno.
  • Trattare qualsiasi segreto inserito nel plugin (credenziali API, token di automazione, segreto del webhook) come una credenziale. Limitare l'accesso al database sugli host di produzione ed evitare di esportare questi valori in backup non crittografati.
  • Ruotare il token di automazione se si sospetta che sia stato divulgato.
  • Mantenere WordPress, PHP e il plugin stesso aggiornati.

Superfici di integrazione pubbliche supportate

Quando ci si integra con il plugin, preferire queste superfici stabili:

I nomi delle classi interne, le chiavi delle opzioni, le tabelle del database, gli endpoint REST e AJAX, i nomi degli hook cron, gli identificatori di permessi e nonce, e l'infrastruttura di rilascio / aggiornamento sono trattati come dettagli di implementazione. Possono cambiare tra le versioni senza preavviso e non fanno parte del contratto di integrazione pubblica.

Politica di stabilità e modifiche

Tutto ciò che non è elencato sopra come superficie pubblica supportata è considerato un dettaglio di implementazione interna. Le API interne, il layout di archiviazione e l'implementazione della sicurezza possono variare tra le versioni. Non dipendere da essi in codice di terze parti, temi o sistemi esterni. Le scritture dirette nel database non sono supportate.

Avviso sulla documentazione pubblica. Questa pagina fornisce solo una panoramica di integrazione di alto livello. I dettagli di implementazione interna, le API private, i dettagli di archiviazione e l'infrastruttura di rilascio sensibile alla sicurezza sono gestiti separatamente e non fanno parte della documentazione pubblica. Le superfici di integrazione supportate sono gli shortcode documentati, le sovrascritture dei template, l'interfaccia utente delle impostazioni e qualsiasi punto di estensione esplicitamente pubblicato in questa sezione.