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
OPTIONSrichieste bloccate in Dispatcher.POSTrichieste a DAM o.jsonrisorse restituiscono200 OKed espongono le operazioni Sling POST.PUToDELETErichieste non riuscite solo in AEMaaCS Stage o Production con405 Method Not Allowed.- Le analisi di sicurezza rilevano i metodi esposti, ad esempio le pagine pubbliche che accettano
POSTo che visualizzanoOPTIONS.
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:
- Identificare i metodi consentiti o bloccati in modo errato verificando gli endpoint interessati con
OPTIONS,POST,PUToDELETE. - Esamina i filtri di Dispatcher e aggiornali in modo che i metodi sicuri siano esplicitamente consentiti e i metodi non sicuri siano esplicitamente negati.
- 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*" }
- Se si utilizza AEM Managed Services o On-Premise, rivedere
dispatcher.anye, se necessario, limitare i metodi in Apache HTTPD per i percorsi che non devono accettarli. - 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>
- 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*" }
- Consenti
OPTIONSsolo sugli endpoint che richiedono la verifica preliminare CORS, come ad esempio le route API GraphQL o SPA, invece di abilitarla a livello generale. - Se il comportamento Sling POST è esposto al momento della pubblicazione, aggiungi una regola di negazione per le richieste
POSTbasate su operazioni e inseriscila dopo regole di autorizzazione più ampie in modo che la corrispondenza finale blocchi la richiesta. - Per la fase e la produzione di AEMaaCS, se
PUToDELETErichieste si comportano in modo imprevisto dopo la conferma della configurazione di Dispatcher, contatta il supporto Adobe. - Ripetere il test degli endpoint interessati e verificare che i metodi bloccati restituiscano le risposte
403,404o405previste, mentre le richiesteOPTIONSobbligatorie hanno esito positivo solo sugli endpoint previsti.