2016-03-23 6 views
0

Ich habe versucht, mit OWASAP-Mechanismus zu schützen mein Legacy-Antragsformular CSRF, aber ich habe Probleme mit der Navigation und Zurück-Taste. Ich habe dann versucht, mit dem Befehl "struts-1 token" zu arbeiten, aber ich hatte das gleiche Problem. Das Problem, das ich mit Token-Injection-Mechanismus denke, ist zunächst, dass wir ein Token in Jsp generieren und es in der Sitzung speichern und etwas ausführen werden.Browser Zurück Schaltfläche Probleme mit CSRF Prevention Mechanisam

Betrachten Sie A.jsp. Lassen Sie Token-Wert 1 in der JSP und wir werden das gleiche in der Sitzung speichern. Jetzt werden wir es in der Filter/Action-Klasse validieren. Danach werden wir eine andere Operation in B.jsp machen und wir werden token neuen Wert 2 in der jsp und in der Sitzung haben. Nach Validierung Formular Server werden wir Wert 2 in der Sitzung haben. Wenn wir nun mit der Zurück-Schaltfläche des Browsers navigieren und zu Seite 1 gehen und sie senden, werden die Werte aus dem Cache geladen und die A.jsp hat den Wert 1 als Token, Nach dem Senden von A.jsp wird es an dieser Stelle angezeigt CSRF-Fehler, da er dem Wert in der Sitzung widerspricht.

Gibt es eine Möglichkeit, den CSRF-Präventionsmechanismus zu implementieren, ohne die Anwendung tatsächlich zu stören?

Antwort

0

Also, wenn ich Ihr Problem richtig verstehe, drücken Sie die Taste zurück, erhalten Sie Seite aus dem Cache mit alten Token? Wenn ich richtig liege, dann gibt es einen einfachen Weg, wie Sie dieses Problem lösen können - Ihre Seiten nicht zwischenspeichern und sie ständig vom Server laden.

Es kann durch das Setzen folgende Antwort-Header

Cache-Control: max-age=0, no-cache, must-revalidate 

Andere, schwierigen Weg erreicht werden kann, ist einzelne Seite Anwendung zu implementieren, in diesem Fall sind Sie immer aktuelle Token in Browser-Speicher haben.

+0

Ich habe versucht, mit den Antwort-Header zu implementieren. Das hat nicht geholfen, da es den Fluss zu brechen ist. Die Implementierung von SPA in die Legacy-App benötigt viel Zeit, die ich jetzt nicht habe. Gibt es eine andere Möglichkeit, die Web-App vor CSRF zu schützen, ohne die Funktionalität zu gefährden? – Girish

+0

Es gibt keine andere Möglichkeit, Ihre Site vor CSRF zu schützen. Sie können versuchen, das Token nicht für den einmaligen Gebrauch auszugeben, sondern für einen angemessenen Zeitraum, wenn es hilft. –

+1

Wie gut ist die Überprüfung der Referrer-Header oder andere Methode mit benutzerdefinierten Header, wo wir die benutzerdefinierte Header in Action-Klasse und nach Übergabe an Jsp, werden wir den gleichen Wert im Antwortheader mit Javascript und vergleichen Sie die Werte in Server für das Gleiche. Wie sicher ist diese Cookie-to-Header-Token-Methode? – Girish

Verwandte Themen