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 Token zu nutzen, müssen Sie die /etc/keys/hmac
Binärdatei für alle Instanzen in Ihrer Implementierung verwenden. 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 Manifestcache mit Ihrer Webanwendung verwenden, stellen Sie sicher, dass Sie "*" in das Manifest ein, um sicherzustellen, dass das Token den CSRF-Token-Generierungsaufruf 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.