Limitazione e autorizzazione dei metodi HTTP in AEM Dispatcher

I metodi HTTP come OPTIONS, POST, PUT e DELETE possono essere bloccati o esposti in modo errato nel livello Dispatcher in AEM. Questo può interrompere le richieste di verifica preliminare CORS, esporre il comportamento Sling POST durante la pubblicazione o produrre risultati di sicurezza quando gli endpoint pubblici accettano metodi non sicuri. Il problema deriva in genere dalle regole legacy di Dispatcher che bloccano OPTIONS in modo ampio o da filtri di negazione mancanti che consentono a POST richieste non sicure di raggiungere la pubblicazione. Rivedi i filtri di Dispatcher, consenti OPTIONS solo se necessario e blocca esplicitamente i metodi non sicuri e le operazioni Sling POST.

Descrizione description

Ambiente

  • Adobe Experience Manager as a Cloud Service
  • AEM Managed Services
  • Adobe Experience Manager On-Premise

Problema/Sintomi

  • OPTIONS richieste bloccate in Dispatcher.
  • POST richieste a DAM o .json risorse restituiscono 200 OK ed espongono le operazioni Sling POST.
  • PUT o DELETE richieste non riuscite solo in AEMaaCS Stage o Production con 405 Method Not Allowed.
  • Le analisi di sicurezza rilevano i metodi esposti, ad esempio le pagine pubbliche che accettano POST o che visualizzano OPTIONS.

Causa

Le regole di sicurezza legacy di Dispatcher spesso bloccano OPTIONS per impedire la manomissione dei verbi, mentre filtri mancanti o eccessivamente permissivi possono consentire a POST, PUT o DELETE richieste non sicure di raggiungere AEM Publish. Questo può esporre il comportamento di Sling POST sugli endpoint pubblici. In AEM as a Cloud Service Stage e Production, è possibile bloccare intenzionalmente PUT e DELETE per proteggere l’integrità dell’archivio.

Risoluzione resolution

Per risolvere i metodi HTTP bloccati o esposti a livello di Dispatcher, effettua le seguenti operazioni:

  1. Identificare i metodi consentiti o bloccati in modo errato verificando gli endpoint interessati con OPTIONS, POST, PUT o DELETE.
  2. Esamina i filtri di Dispatcher e aggiornali in modo che i metodi sicuri siano esplicitamente consentiti e i metodi non sicuri siano esplicitamente negati.
  3. Utilizza regole di filtro simili agli esempi seguenti e regolale in modo che corrispondano esattamente ai percorsi e ai metodi richiesti nell’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 si utilizza AEM Managed Services o On-Premise, rivedere dispatcher.any e, se necessario, limitare i metodi in Apache HTTPD per i percorsi che non devono accettarli.
  2. Utilizza restrizioni HTTPD di Apache simili all’esempio seguente in cui il blocco del metodo è richiesto a livello di server web.
<Limit OPTIONS>
Order deny,allow
Deny from all
</Limit>
  1. Applica regole specifiche per il percorso in cui devono essere consentiti solo i metodi selezionati.
/0035 { /type "allow" /method "GET" /url "/libs/granite/security/currentuser.json*" }
/0036 { /type "deny" /method "DELETE" /url "/libs/granite/security/currentuser.json*" }
  1. Consenti OPTIONS solo sugli endpoint che richiedono la verifica preliminare CORS, come ad esempio le route API GraphQL o SPA, invece di abilitarla a livello generale.
  2. Se il comportamento Sling POST è esposto al momento della pubblicazione, aggiungi una regola di negazione per le richieste POST basate su operazioni e inseriscila dopo regole di autorizzazione più ampie in modo che la corrispondenza finale blocchi la richiesta.
  3. Per la fase e la produzione di AEMaaCS, se PUT o DELETE richieste si comportano in modo imprevisto dopo la conferma della configurazione di Dispatcher, contatta il supporto Adobe.
  4. Ripetere il test degli endpoint interessati e verificare che i metodi bloccati restituiscano le risposte 403, 404 o 405 previste, mentre le richieste OPTIONS obbligatorie hanno esito positivo solo sugli endpoint previsti.

Lettura correlata

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