Documentazione · Documentazione per gli sviluppatori
Sanificazione ed Escaping
Questa pagina descrive l'approccio alla sanificazione e all'escaping del plugin a livello generale. I nomi degli helper interni, le pipeline di validazione e le regole esatte di mascheramento sono dettagli di implementazione e non vengono pubblicati qui.
Approccio
Il plugin segue le linee guida di sicurezza standard di WordPress:
- Sanificare in fase di input. Ogni valore non attendibile viene sanificato utilizzando l'API WordPress appropriata per il suo tipo prima di essere memorizzato o utilizzato.
- Effettuare l'escaping in fase di output. Ogni valore dinamico viene sottoposto a escaping al momento del rendering utilizzando l'API di escaping WordPress appropriata per il suo contesto (HTML, attributo, URL, JavaScript, JSON).
- Validare, poi sanificare, poi effettuare l'escaping. La validazione rifiuta i valori fuori intervallo; la sanificazione normalizza la forma; l'escaping protegge il contesto di output.
- Mascherare i segreti nella diagnostica. L'output diagnostico non include mai segreti in chiaro, token, intestazioni di autorizzazione o intestazioni di richieste firmate.
Per gli sviluppatori che estendono il sistema
Quando si scrive codice che si integra con il plugin (template personalizzati, override del tema, callback degli hook):
- Trattare ogni valore proveniente da parametri di richiesta, opzioni, post meta o API di terze parti come non attendibile.
- Utilizzare l'API di sanificazione di WordPress (
sanitize_text_field,sanitize_email,wp_kses_post,absint, ecc.) in fase di input. - Utilizzare l'API di escaping di WordPress (
esc_html,esc_attr,esc_url,esc_js,wp_json_encode) al momento dell'output. - Non stampare mai (tramite echo) segreti o credenziali configurati all'interno dell'output renderizzato o nelle righe di log.
Superfici di integrazione pubbliche supportate
Quando ci si integra con il plugin, preferire queste superfici stabili:
- L'interfaccia utente delle impostazioni di amministrazione del plugin.
- Gli shortcode documentati.
- Gli override dei template a livello di tema, come descritto in Template System And Overrides.
- La Panoramica per gli sviluppatori generale per l'orientamento.
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 capability e nonce, e l'infrastruttura di rilascio / aggiornamento sono trattati come dettagli di implementazione. Possono cambiare tra i rilasci 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 memorizzazione e l'implementazione della sicurezza possono variare tra i rilasci. Non dipendere da essi da 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 ad alto livello. I dettagli di implementazione interna, le API private, gli aspetti interni di memorizzazione 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, gli override dei template, l'interfaccia utente delle impostazioni e qualsiasi punto di estensione esplicitamente pubblicato in questa sezione.