In Play Framework können wir eine globale CSRF-Prüfung anwenden
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public <T extends EssentialFilter> Class<T>[] filters() {
Class[] filters = { CSRFFilter.class };
return filters;
}
Was in den meisten Fällen gut ist. Ich möchte jedoch die Facebook Canvas-Seite einrichten, die auf unsere Website verweist. Die Sache ist, dass Facebook eine POST-Anfrage an unsere Seite sendet und dies durch die CSRF-Prüfung verhindert wird. Es kommt immer zurück "Ungültiges CSRF-Token"
Daher möchte ich CSRF selektiv deaktivieren, indem Sie in einigen Aktionen www.ourwebsite.com/canvas eingeben
Ist das machbar?
Antworten:
6 für die Antwort № 1Ich habe einen Blog-Post darüber erstellt, wie das geht, siehe hier:
http://dominikdorn.com/2014/07/playframework-2-3-global-csrf-protection-disable-csrf-selectively/
2017-Update: Ab PlayFramework 2.6 ist dies nun im Framework selbst enthalten: https://www.playframework.com/documentation/2.6.x/JavaCsrf#applying-a-global-csrf-filter