Beschränken und Zulassen von HTTP-Methoden in AEM Dispatcher

HTTP-Methoden wie OPTIONS, POST, PUT und DELETE können auf der Dispatcher-Ebene in AEM blockiert oder falsch bereitgestellt werden. Dies kann CORS-Preflight-Anfragen unterbrechen, das Sling-POST-Verhalten bei der Veröffentlichung verfügbar machen oder Sicherheitsergebnisse erzeugen, wenn öffentliche Endpunkte unsichere Methoden akzeptieren. Das Problem stammt in der Regel von alten Dispatcher-Regeln, die OPTIONS weitgehend blockieren oder fehlende Ablehnungsfilter enthalten, die es unsicheren POST ermöglichen, die Veröffentlichung zu erreichen. Überprüfen Sie Dispatcher-Filter, lassen Sie OPTIONS nur zu, wenn erforderlich, und blockieren Sie unsichere Methoden und Sling-POST-Vorgänge explizit.

Beschreibung description

Umgebung

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

Problem/Symptome

  • OPTIONS Anfragen werden in Dispatcher blockiert.
  • POST Anforderungen an DAM- oder .json-Ressourcen geben 200 OK zurück und machen Sling-POST-Vorgänge verfügbar.
  • PUT oder DELETE Anfragen schlagen nur in der AEMaaCS-Staging- oder -Produktionsumgebung mit 405 Method Not Allowed fehl.
  • Sicherheitsüberprüfungen melden offen gelegte Methoden, z. B. öffentliche Seiten, die POST akzeptieren oder OPTIONS anzeigen.

Ursache

Ältere Dispatcher-Sicherheitsregeln blockieren häufig OPTIONS, um Verb-Manipulationen zu verhindern, während fehlende oder übermäßig tolerante Filter unsichere POST-, PUT- oder DELETE-Anfragen an AEM Publish ermöglichen können. Dadurch kann das Sling-POST-Verhalten auf öffentlichen Endpunkten verfügbar gemacht werden. In der Staging- und Produktionsumgebung von AEM as a Cloud Service können PUT und DELETE auch absichtlich blockiert werden, um die Repository-Integrität zu schützen.

Lösung resolution

Gehen Sie wie folgt vor, um blockierte oder offen gelegte HTTP-Methoden auf Dispatcher-Ebene aufzulösen:

  1. Identifizieren Sie, welche Methoden fälschlicherweise zugelassen oder blockiert werden, indem Sie die betroffenen Endpunkte mit OPTIONS, POST, PUT oder DELETE testen.
  2. Überprüfen Sie die Dispatcher-Filter und aktualisieren Sie sie, sodass sichere Methoden explizit zulässig sind und unsichere Methoden explizit verweigert werden.
  3. Verwenden Sie Filterregeln ähnlich den folgenden Beispielen und passen Sie sie an die exakten Pfade und Methoden an, die in Ihrer Umgebung erforderlich sind.
/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. Wenn Sie AEM Managed Services oder On-Premise verwenden, überprüfen Sie dispatcher.any und schränken Sie bei Bedarf die Methoden unter Apache HTTPD auf Pfade ein, die diese nicht akzeptieren sollten.
  2. Verwenden Sie Apache-HTTPD-Einschränkungen ähnlich dem folgenden Beispiel, bei dem die Methodenblockierung auf der Webserver-Ebene erforderlich ist.
<Limit OPTIONS>
Order deny,allow
Deny from all
</Limit>
  1. Wenden Sie pfadspezifische Regeln an, bei denen nur ausgewählte Methoden zulässig sein sollen.
/0035 { /type "allow" /method "GET" /url "/libs/granite/security/currentuser.json*" }
/0036 { /type "deny" /method "DELETE" /url "/libs/granite/security/currentuser.json*" }
  1. OPTIONS nur für Endpunkte zulassen, für die CORS-Preflight erforderlich ist, z. B. GraphQL- oder SPA-API-Routen, anstatt sie umfassend zu aktivieren.
  2. Wenn das Sling-POST-Verhalten bei der Veröffentlichung verfügbar gemacht wird, fügen Sie eine Ablehnungsregel für vorgangsbasierte POST-Anfragen hinzu und platzieren Sie sie hinter umfassendere Zulassen-Regeln, damit die endgültige Übereinstimmung die Anfrage blockiert.
  3. Wenden Sie sich für die AEMaaCS-Staging- und -Produktionsumgebung an den Adobe-Support, wenn sich PUT- oder DELETE-Anfragen nach der Bestätigung der Dispatcher-Konfiguration unerwartet ​.
  4. Testen Sie die betroffenen Endpunkte erneut und bestätigen Sie, dass blockierte Methoden die erwarteten 403-, 404- oder 405-Antworten zurückgeben, während erforderliche OPTIONS-Anfragen nur bei den beabsichtigten Endpunkten erfolgreich sind.

Verwandtes Lesen

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