Documentation · Documentation développeur
Assainissement et échappement
Cette page décrit l'approche globale d'assainissement et d'échappement de l'extension. Les noms des assistants internes, les pipelines de validation et les règles de masquage exactes sont des détails d'implémentation et ne sont pas publiés ici.
Approche
L'extension suit les directives de sécurité standard de WordPress :
- Assainir à l'entrée. Chaque valeur non approuvée est assainie à l'aide de l'API WordPress appropriée pour son type avant d'être stockée ou utilisée.
- Échapper à la sortie. Chaque valeur dynamique est échappée au moment du rendu à l'aide de l'API d'échappement WordPress appropriée pour son contexte (HTML, attribut, URL, JavaScript, JSON).
- Valider, puis assainir, puis échapper. La validation rejette les valeurs hors limites ; l'assainissement normalise la forme ; l'échappement protège le contexte de sortie.
- Masquer les secrets dans les diagnostics. Les données de diagnostic ne contiennent jamais de secrets en clair, de jetons, d'en-têtes d'autorisation ou d'en-têtes de requêtes signées.
Pour les développeurs d'extensions
Lors de l'écriture de code qui s'intègre à l'extension (modèles personnalisés, surcharges de thèmes, rappels de hooks) :
- Traitez chaque valeur provenant des paramètres de requête, des options, des métadonnées de publication (post meta) ou des API tierces comme non approuvée.
- Utilisez l'API d'assainissement de WordPress (
sanitize_text_field,sanitize_email,wp_kses_post,absint, etc.) à l'entrée. - Utilisez l'API d'échappement de WordPress (
esc_html,esc_attr,esc_url,esc_js,wp_json_encode) au moment de la sortie. - Ne renvoyez jamais de secrets ou d'identifiants configurés dans le rendu de sortie ou dans les lignes de journalisation.
Surfaces d'intégration publiques prises en charge
Lors de l'intégration avec l'extension, privilégiez ces surfaces stables :
- L'interface utilisateur des réglages d'administration de l'extension.
- Les shortcodes documentés.
- Les surcharges de modèles au niveau du thème, comme décrit dans Système de modèles et surcharges.
- L'Aperçu pour les développeurs général pour vous orienter.
Les noms de classes internes, les clés d'option, les tables de base de données, les points de terminaison REST et AJAX, les noms de hooks cron, les identifiants de capacités et de nonces, ainsi que l'infrastructure de publication / mise à jour sont traités comme des détails d'implémentation. Ils peuvent changer d'une version à l'autre sans préavis et ne font pas partie du contrat d'intégration public.
Politique de stabilité et de modification
Tout ce qui n'est pas répertorié comme une surface publique prise en charge ci-dessus est considéré comme un détail d'implémentation interne. Les API internes, la structure de stockage et l'implémentation de la sécurité peuvent changer d'une version à l'autre. Ne dépendez pas d'eux dans du code tiers, des thèmes ou des systèmes externes. Les écritures directes dans la base de données ne sont pas prises en charge.
Avis de documentation publique. Cette page fournit uniquement un aperçu de haut niveau de l'intégration. Les détails d'implémentation interne, les API privées, les structures internes de stockage et l'infrastructure de publication sensible à la sécurité sont gérés séparément et ne font pas partie de la documentation publique. Les surfaces d'intégration prises en charge sont les shortcodes documentés, les surcharges de modèles, l'interface utilisateur des réglages et tous les points d'extension explicitement publiés dans cette section.