Validação insuficiente do lado do servidor na atualização do perfil do AEM

No Adobe Experience Manager (AEM), o CMS do autor permite atualizações de perfil por meio da interface para toque, sem impor a validação robusta do lado do servidor. O problema decorre do modelo de validação permissivo padrão da AEM, que não impõe verificações rigorosas em campos de perfil. Para resolver o problema, implemente a validação do lado do servidor usando o Sling PostProcessor ou a lógica de servlet personalizada.

Descrição description

Ambiente

Adobe Experience Manager (AEM), v6.5

Problema/Sintomas

  • Uma validação insuficiente do lado do servidor foi identificada durante um VAPT (teste de penetração e avaliação de vulnerabilidades). Os sintomas incluem:

    • O CMS do autor do AEM aceita entrada de email inválida durante atualizações de perfil por meio da interface para toque.
    • A validação do lado do cliente existe, mas as verificações do lado do servidor estão ausentes, permitindo que solicitações modificadas com dados inválidos atualizem campos de perfil.
  • A vulnerabilidade foi identificada durante um exercício de Avaliação de Vulnerabilidade e Teste de Penetração (VAPT).

Etapas a serem reproduzidas:

  1. Faça logon no back-end do AEM e navegue até a página de edição de perfil.
  2. Observe que há validação do lado do cliente para o campo de email.
  3. Insira um endereço de email válido e intercepte a solicitação usando o Burp Suite ao salvar as alterações.
  4. Modifique o valor do parâmetro de email para um valor inválido, como false.
  5. Encaminhe a solicitação modificada e observe que o perfil foi salvo com sucesso sem um email válido.

Resolução resolution

O modelo de validação de entrada do AEM é intencionalmente flexível por padrão. O repositório adota uma abordagem permissiva e restrições mínimas são aplicadas na maioria dos campos, incluindo o atributo de email. Pronto para uso, geralmente não há validação rigorosa em campos de dados de perfil — depende do aplicativo ou do consumidor impor a integridade do conteúdo onde for necessário.

Para introduzir uma validação de entrada robusta do lado do servidor (por exemplo, para campos de email), considere as seguintes opções:

  1. Implemente a Interface Sling PostProcessor para validar a entrada gerenciada pelo Sling Post Servlet durante as atualizações de conteúdo padrão no AEM Author.
  2. Adicione a lógica de validação em servlets dedicados para casos em que as atualizações de perfil são tratadas fora do Sling Post Servlet.

Isso garante que todos os campos obrigatórios sejam validados de acordo com as necessidades do aplicativo, mantendo a flexibilidade para outros casos de uso.

Leitura relacionada

Sling Servlet nos tutoriais do AEM Forms

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f