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
OPTIONSsolicitações estão bloqueadas no Dispatcher.POSTsolicitações para DAM ou.jsonrecursos retornam200 OKe expõem operações Sling POST.- As solicitações
PUTouDELETEfalham somente em Preparo ou Produção do AEMaaCS com405 Method Not Allowed. - As verificações de segurança relatam métodos expostos, como páginas públicas aceitando
POSTou mostrandoOPTIONS.
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:
- Identifique quais métodos são incorretamente permitidos ou bloqueados testando os pontos de extremidade afetados com
OPTIONS,POST,PUTouDELETE. - 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.
- 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*" }
- Se você usa o AEM Managed Services ou no local, revise
dispatcher.anye, se necessário, restrinja os métodos no Apache HTTPD para caminhos que não devem aceitá-los. - 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>
- 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*" }
- Permitir
OPTIONSsomente em pontos de extremidade que exijam comprovação do CORS, como rotas da API GraphQL ou SPA, em vez de habilitá-lo amplamente. - Se o comportamento POST do Sling for exposto em Publish, adicione uma regra de negação para solicitações
POSTbaseadas em operação e coloque-a após regras de permissão mais amplas para que a correspondência final bloqueie a solicitação. - Para Preparo e produção do AEMaaCS, se as solicitações
PUTouDELETEse comportarem inesperadamente após a confirmação da configuração do Dispatcher, entre em contato com o Suporte da Adobe. - Teste novamente os pontos de extremidade afetados e confirme se os métodos bloqueados retornam as respostas
403,404ou405esperadas, enquanto as solicitaçõesOPTIONSnecessárias são bem-sucedidas somente nos pontos de extremidade desejados.