Neben dem Apache Sling Referrer Filter bietet Adobe zudem ein neues CSRF Protection Framework zum Schutz vor dieser Art von Angriffen.
Das Framework verwendet Tokens, um sicherzustellen, dass die Client-Anfrage legitim ist. Die Tokens werden erzeugt, wenn das Formular an den Client gesendet wird, und validiert, wenn das Formular an den Server zurückgesendet wird.
Für anonyme Benutzer gibt es in den Veröffentlichungsinstanzen keine Token.
Jede Komponente, die sich auf die Abhängigkeit granite.jquery
stützt, profitiert automatisch vom CSRF Protection Framework. Wenn dies für eine Ihrer Komponenten nicht der Fall ist, müssen Sie eine Abhängigkeit von granite.csrf.standalone
deklarieren, bevor Sie das Framework verwenden können.
Um die Tokens zu verwenden, müssen Sie die Binärdatei /etc/keys/hmac
auf allen Instanzen in Ihrer Bereitstellung replizieren. Eine bequeme Möglichkeit, den HMAC-Schlüssel in alle Instanzen zu kopieren, besteht darin, ein Paket zu erstellen, das den Schlüssel enthält, und ihn über Package Manager auf alle Instanzen zu installieren.
Achten Sie darauf, auch die notwendigen Dispatcher-Konfigurationsänderungen vorzunehmen, um das CSRF Protection Framework zu verwenden.
Wenn Sie den Manifest-Cache mit Ihrer Web-Anwendung verwenden, stellen Sie sicher, dass Sie „*“ zum Manifest hinzufügen, damit das Token die CSRF-Token-Erzeugungsanforderung nicht offline nimmt. Weitere Informationen finden Sie unter diesem Link.
Weitere Informationen zu CSRF-Angriffen und Möglichkeiten, sie abzuschwächen, finden Sie auf der Seite Cross-Site Request Forgery OWASP.