Restriction et autorisation des méthodes HTTP dans AEM Dispatcher
Les méthodes HTTP telles que OPTIONS, POST, PUT et DELETE peuvent être bloquées ou exposées de manière incorrecte au niveau Dispatcher dans AEM. Cela peut interrompre les requêtes de contrôle en amont CORS, exposer le comportement POST de Sling sur l’instance de publication ou produire des résultats de sécurité lorsque les points d’entrée publics acceptent des méthodes non sécurisées. Le problème provient généralement de règles Dispatcher héritées qui bloquent largement les OPTIONS ou de filtres de refus manquants qui permettent aux requêtes de POST non sécurisées d’atteindre l’instance de publication. Passez en revue les filtres Dispatcher, autorisez uniquement les OPTIONS lorsque cela est nécessaire et bloquez explicitement les méthodes non sécurisées et les opérations Sling POST.
Description description
Environnement
- Adobe Experience Manager as a Cloud Service
- AEM Managed Services
- Adobe Experience Manager On-Premise
Problème/Symptômes
OPTIONSrequêtes sont bloquées dans Dispatcher.- Les requêtes
POSTà la gestion des ressources numériques ou.jsonrenvoient des200 OKet exposent les opérations Sling POST. - Les requêtes
PUTouDELETEéchouent uniquement dans l’environnement d’évaluation ou de production AEMaaCS avec405 Method Not Allowed. - Les analyses de sécurité signalent les méthodes exposées, telles que les pages publiques acceptant les
POSTou affichant lesOPTIONS.
Cause
Les règles de sécurité Dispatcher héritées bloquent souvent les OPTIONS afin d’empêcher la falsification des verbes, tandis que les filtres manquants ou trop permissifs peuvent autoriser des POST, des PUT ou des requêtes DELETE dangereuses à atteindre l’instance de publication AEM. Cela peut exposer le comportement de Sling POST sur les points d’entrée publics. Dans les environnements d’évaluation et de production AEM as a Cloud Service, les PUT et les DELETE peuvent également être bloqués intentionnellement pour protéger l’intégrité du référentiel.
Résolution resolution
Pour résoudre les méthodes HTTP bloquées ou exposées au niveau de la couche Dispatcher, procédez comme suit :
- Identifiez les méthodes incorrectement autorisées ou bloquées en testant les points d’entrée affectés avec
OPTIONS,POST,PUTouDELETE. - Passez en revue les filtres Dispatcher et mettez-les à jour afin que les méthodes sécurisées soient explicitement autorisées et les méthodes non sécurisées explicitement refusées.
- Utilisez des règles de filtrage similaires aux exemples suivants et ajustez-les pour qu’elles correspondent aux chemins et méthodes exacts requis dans votre environnement.
/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*" }
- Si vous utilisez AEM Managed Services ou On-Premise, passez en revue les
dispatcher.anyet, si nécessaire, limitez les méthodes au niveau d’Apache HTTPD pour les chemins d’accès qui ne doivent pas les accepter. - Utilisez des restrictions Apache HTTPD similaires à l’exemple suivant où le blocage de méthode est requis au niveau de la couche du serveur web.
<Limit OPTIONS>
Order deny,allow
Deny from all
</Limit>
- Appliquez des règles spécifiques au chemin d’accès où seules les méthodes sélectionnées doivent être autorisées.
/0035 { /type "allow" /method "GET" /url "/libs/granite/security/currentuser.json*" }
/0036 { /type "deny" /method "DELETE" /url "/libs/granite/security/currentuser.json*" }
- Autorisez l’
OPTIONSuniquement sur les points d’entrée qui nécessitent un contrôle en amont CORS, tels que les itinéraires d’API GraphQL ou SPA, au lieu de l’activer globalement. - Si le comportement de Sling POST est exposé sur l’instance de publication, ajoutez une règle de refus pour les requêtes
POSTbasées sur les opérations et placez-la après des règles d’autorisation plus larges afin que la correspondance finale bloque la requête. - Concernant l’évaluation et la production AEMaaCS, si des requêtes
PUTouDELETEse comportent de manière inattendue après la confirmation de la configuration de Dispatcher, contactez l’assistance technique d’Adobe. - Testez à nouveau les points d’entrée affectés et confirmez que les méthodes bloquées renvoient les réponses
403,404ou405attendues, tandis que les requêtesOPTIONSrequises ne réussissent que sur les points d’entrée prévus.