Sanitización, escapado y requisitos de capacidades

Los helpers de POM no sustituyen los controles de seguridad de WordPress. Trata cada valor de petición, atributo de builder, ajuste, valor de metadatos y atributo de etiqueta de combinación según su origen y su contexto final.

Peticiones que modifican estado

Un manejador de escritura debe:

  1. requerir una capacidad de WordPress apropiada;
  2. verificar un nonce o un permiso REST autenticado;
  3. validar los identificadores con respecto al recurso que se está modificando;
  4. sanitizar cada valor aceptado;
  5. rechazar claves no compatibles;
  6. devolver un error seguro para el usuario.

Un nonce demuestra la intención de la petición, no la autorización. Comprueba ambas cosas.

Para las rutas REST, proporciona un permission_callback real y esquemas de argumentos. Para los manejadores AJAX o de formularios, no confíes en un ID de usuario, ID de publicación, destinatario o rol enviados sin resolverlos en el lado del servidor.

Escapa en el destino

  • usa esc_html() para nodos de texto;
  • usa esc_attr() para atributos;
  • usa esc_url() para URLs;
  • usa wp_kses_post() solo para HTML de entradas compatible de forma intencionada;
  • usa wp_json_encode() o respuestas JSON de WordPress para datos estructurados.

No escapes valores antes de almacenarlos como sustituto del escapado en la salida. Las funciones de renderizado de POM de confianza pueden devolver marcado completo; sanitiza las entradas que se les pasan y no conviertas ese marcado en texto plano con esc_html().

Límites de autorización

Las reglas de permisos controlan si POM presenta contenido. No otorgan capacidades administrativas, acceso a pedidos, acceso a entradas privadas ni autorización REST.

La visibilidad mediante CSS, los inputs ocultos, los controles del builder y las comprobaciones en JavaScript nunca son controles de acceso.

Datos sensibles

No registres el contenido de formularios, los datos de clientes, las claves de licencia, los nonces, los descriptores firmados ni las cabeceras de autenticación. Mantén los mensajes de error públicos libres de rutas, texto de consultas, trazas de pila y detalles de almacenamiento.

Verificación

Prueba la petición válida, la capacidad faltante, el nonce faltante o no válido, el ID de objeto alterado, el campo inesperado, el valor malformado y la petición directa sin haber iniciado sesión.