Konfigurieren von Adobe Experience Manager Dispatcher zum Verhindern von CSRF-Angriffen configuring-dispatcher-to-prevent-csrf-attacks
AEM (Adobe Experience Manager) bietet ein Framework, mit dem Cross-Site Request Forgery-Angriffe verhindert werden können. Um dieses Framework ordnungsgemäß zu verwenden, nehmen Sie die folgenden Änderungen an Ihrer Dispatcher-Konfiguration vor:
-
Fügen Sie in den Dateien
author-farm.any
undpublish-farm.any
im Abschnitt/clientheaders
am Ende der Liste den folgenden Eintrag hinzu:CSRF-Token
-
Fügen Sie in den Dateien
author-farm.any
undpublish-farm.any
oderpublish-filters.any
im Abschnitt „/filter“ die folgende Zeile hinzu, um Anfragen für/libs/granite/csrf/token.json
durch den Dispatcher zuzulassen./0999 { /type "allow" /glob " * /libs/granite/csrf/token.json*" }
-
Fügen Sie in der Datei
publish-farm.any
unter dem Abschnitt/cache /rules
eine Regel hinzu, um den Dispatcher daran zu hindern, die Dateitoken.json
zwischenzuspeichern. Meist umgehen Autorinnen und Autoren das Zwischenspeichern, daher müssen Sie die Regel wahrscheinlich nicht zur Dateiauthor-farm.any
hinzufügen./0999 { /glob "/libs/granite/csrf/token.json" /type "deny" }
Um zu überprüfen, ob die Konfiguration funktioniert, sehen Sie sich „dispatcher.log“ im DEBUG-Modus an. So können Sie sicherstellen, dass die Datei token.json
nicht zwischengespeichert oder von Filtern blockiert wird. Sie sollten Meldungen erhalten, die dieser ähneln:... checking [/libs/granite/csrf/token.json]
... request URL not in cache rules: /libs/granite/csrf/token.json
... cache-action for [/libs/granite/csrf/token.json]: NONE
Im access_log
von Apache kann zudem überprüft werden, ob Anfragen erfolgreich sind. Anfragen für „/libs/granite/csrf/token.json“ sollten einen HTTP-Status-Code 200 zurückgeben.