Konfigurieren des Dispatchers zum Verhindern von CSRF-Angriffen configuring-dispatcher-to-prevent-csrf-attacks
AEM bietet ein Framework, mit dem CSRF-Angriffe (Cross-Site Request Forgery) verhindert werden können. Um dieses Framework richtig nutzen zu können, müssen Sie die folgenden Änderungen an Ihrer Dispatcher-Konfiguration vornehmen:
- Fügen Sie in den Dateien „author-farm.any“ und „publish-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 Autoren das Zwischenspeichern. Inauthor-farm.any
muss die Regel somit typischerweise nicht eingefügt werden./0999 { /glob "/libs/granite/csrf/token.json" /type "deny" }
Um zu überprüfen, ob die Konfiguration korrekt ist, sehen Sie sich die Datei „dispatcher.log“ im Debugmodus an und stellen Sie sicher, dass die Datei „token.json“ weder zwischengespeichert noch 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-Statuscode 200 zurückgeben.