Restrição e permissão de métodos HTTP no AEM Dispatcher

Métodos HTTP como OPTIONS, POST, PUT e DELETE podem ser bloqueados ou expostos incorretamente na camada do Dispatcher no AEM. Isso pode quebrar as solicitações de comprovação do CORS, expor o comportamento do Sling POST na publicação ou produzir descobertas de segurança quando os endpoints públicos aceitam métodos inseguros. O problema geralmente vem das regras herdadas do Dispatcher que bloqueiam OPTIONS amplamente ou da ausência de filtros de negação que permitem que solicitações POST inseguras cheguem à Publicação. Revise os filtros do Dispatcher, permita OPTIONS somente quando necessário, e bloqueie explicitamente métodos não seguros e operações Sling POST.

Descrição description

Ambiente

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

Problema/Sintomas

  • OPTIONS solicitações estão bloqueadas no Dispatcher.
  • POST solicitações para DAM ou .json recursos retornam 200 OK e expõem operações Sling POST.
  • As solicitações PUT ou DELETE falham somente em Preparo ou Produção do AEMaaCS com 405 Method Not Allowed.
  • As verificações de segurança relatam métodos expostos, como páginas públicas aceitando POST ou mostrando OPTIONS.

Causa

As regras de segurança herdadas do Dispatcher geralmente bloqueiam OPTIONS para impedir a violação de verbos, enquanto filtros ausentes ou excessivamente permissivos podem permitir solicitações POST, PUT ou DELETE inseguras para acessar a Publicação do AEM. Isso pode expor o comportamento do Sling POST em pontos de extremidade públicos. No AEM as a Cloud Service Stage and Production, PUT e DELETE também podem ser bloqueados intencionalmente para proteger a integridade do repositório.

Resolução resolution

Para resolver métodos HTTP bloqueados ou expostos na camada do Dispatcher, siga estas etapas:

  1. Identifique quais métodos são incorretamente permitidos ou bloqueados testando os pontos de extremidade afetados com OPTIONS, POST, PUT ou DELETE.
  2. Revise os filtros do Dispatcher e atualize-os para que os métodos seguros sejam explicitamente permitidos e os métodos não seguros sejam explicitamente negados.
  3. Use regras de filtro semelhantes aos exemplos a seguir e ajuste-as para corresponder aos caminhos e métodos exatos necessários em seu ambiente.
/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. Se você usa o AEM Managed Services ou no local, revise dispatcher.any e, se necessário, restrinja os métodos no Apache HTTPD para caminhos que não devem aceitá-los.
  2. Use restrições HTTPD do Apache semelhantes ao exemplo a seguir, em que o bloqueio de método é necessário na camada do servidor da Web.
<Limit OPTIONS>
Order deny,allow
Deny from all
</Limit>
  1. Aplique regras específicas de caminho onde somente os métodos selecionados devem ser permitidos.
/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 somente em pontos de extremidade que exijam comprovação do CORS, como rotas da API GraphQL ou SPA, em vez de habilitá-lo amplamente.
  2. Se o comportamento POST do Sling for exposto em Publish, adicione uma regra de negação para solicitações POST baseadas em operação e coloque-a após regras de permissão mais amplas para que a correspondência final bloqueie a solicitação.
  3. Para Preparo e produção do AEMaaCS, se as solicitações PUT ou DELETE se comportarem inesperadamente após a confirmação da configuração do Dispatcher, entre em contato com o Suporte da Adobe.
  4. Teste novamente os pontos de extremidade afetados e confirme se os métodos bloqueados retornam as respostas 403, 404 ou 405 esperadas, enquanto as solicitações OPTIONS necessárias são bem-sucedidas somente nos pontos de extremidade desejados.

Leitura relacionada

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