Restricción y autorización de métodos HTTP en AEM Dispatcher

Los métodos HTTP como OPTIONS, POST, PUT y DELETE se pueden bloquear o exponer incorrectamente en el nivel de Dispatcher en AEM. Esto puede interrumpir las solicitudes de verificación previa de CORS, exponer el comportamiento de Sling POST en la publicación o producir resultados de seguridad cuando los extremos públicos aceptan métodos no seguros. El problema generalmente proviene de reglas de Dispatcher heredadas que bloquean OPTIONS en sentido amplio o de filtros de denegación que faltan y que permiten que solicitudes POST no seguras lleguen a Publish. Revise los filtros de Dispatcher, permita OPTIONS solo cuando sea necesario y bloquee los métodos no seguros y las operaciones Sling POST explícitamente.

Descripción description

Entorno

  • Adobe Experience Manager as a Cloud Service
  • AEM Managed Services
  • Adobe Experience Manager local

Problema/Síntomas

  • OPTIONS solicitudes están bloqueadas en Dispatcher.
  • Las solicitudes de POST a los recursos DAM o .json devuelven 200 OK y exponen las operaciones de Sling POST.
  • Las solicitudes PUT o DELETE solo fallan en la fase o producción de AEMaaCS con 405 Method Not Allowed.
  • Los análisis de seguridad informan de métodos expuestos, como páginas públicas que aceptan POST o que muestran OPTIONS.

Causa

Las reglas de seguridad heredadas de Dispatcher suelen bloquear OPTIONS para evitar la alteración de verbos, mientras que los filtros que faltan o son excesivamente permisivos pueden permitir solicitudes no seguras de POST, PUT o DELETE que lleguen a AEM Publish. Esto puede exponer el comportamiento de Sling POST en extremos públicos. En AEM as a Cloud Service Stage and Production, PUT y DELETE también se pueden bloquear intencionadamente para proteger la integridad del repositorio.

Resolución resolution

Para resolver los métodos HTTP bloqueados o expuestos en la capa de Dispatcher, siga estos pasos:

  1. Identifique los métodos que se permiten o bloquean incorrectamente probando los extremos afectados con OPTIONS, POST, PUT o DELETE.
  2. Revise los filtros de Dispatcher y actualícelos para que se permitan explícitamente los métodos seguros y se denieguen explícitamente los no seguros.
  3. Utilice reglas de filtro similares a los ejemplos siguientes y ajústelas para que coincidan con las rutas y los métodos exactos necesarios en su entorno.
/deny-post { /type "deny" /method "POST" /extension '(css|png|pdf|jpg|js)' }
/deny-operation { /type "deny" /method "POST" /url ".*:operation.*" }
/allow-options-cors { /type "allow" /method "OPTIONS" /url "/graphql*" }
  1. Si usa AEM Managed Services o On-Premise, revise dispatcher.any y, si es necesario, restrinja los métodos en Apache HTTPD para las rutas que no deban aceptarlos.
  2. Utilice restricciones HTTPD de Apache similares al siguiente ejemplo, donde se requiere el bloqueo de métodos en la capa del servidor web.
<Limit OPTIONS>
Order deny,allow
Deny from all
</Limit>
  1. Aplique reglas específicas de ruta donde solo se deben permitir los métodos seleccionados.
/0035 { /type "allow" /method "GET" /url "/libs/granite/security/currentuser.json*" }
/0036 { /type "deny" /method "DELETE" /url "/libs/granite/security/currentuser.json*" }
  1. Permitir OPTIONS solo en los puntos de conexión que requieran comprobación previa CORS, como rutas de API GraphQL o SPA, en lugar de habilitarlo en sentido amplio.
  2. Si el comportamiento de Sling POST se expone en la publicación, agregue una regla de denegación para las solicitudes de POST basadas en la operación y colóquela después de reglas de permiso más amplias para que la coincidencia final bloquee la solicitud.
  3. Para la fase y producción de AEMaaCS, si las solicitudes de PUT o DELETE se comportan de forma inesperada después de confirmar la configuración de Dispatcher, póngase en contacto con el Soporte técnico de Adobe.
  4. Vuelva a probar los extremos afectados y confirme que los métodos bloqueados devuelven las respuestas esperadas de 403, 404 o 405, mientras que las solicitudes necesarias de OPTIONS solo se realizan correctamente en los extremos deseados.

Lectura relacionada

recommendation-more-help
experience-cloud-kcs-help-kbarticles