/ / CSRF-Filterung mit GWT RequestFactoryServlet - gwt, Servlet-Filter, csrf, requestfactory

CSRF-Filterung mit GWT RequestFactoryServlet - gwt, Servlet-Filter, csrf, requestfactory

Ich implementiere ein tokenbasiertes System, um CSRF-Angriffe in meiner Request Factory-basierten GWT-App zu verhindern.

Um meinen Filter auf der Serverseite zu implementieren, habe ich die doPost-Methode von RequestFactoryServlet überschrieben.

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

String sessionToken = CsrfTokenManager.getToken(request.getSession());
String requestToken = request.getHeader(CsrfTokenManager.CSRF_TOKEN_NAME);
if (sessionToken.equals(requestToken)) {
super.doPost(request, response);
} else {
logger.error(String.format("Received unsafe http request [%s]", getFullRequest(request)));
response.sendError(401,"Unsafe HTTP Request");
}
}

Dies funktioniert dadurch, dass keine Anforderungen ohne gültiges Token verarbeitet werden können und meine Protokolle eine geeignete Meldung enthalten, aber der Fehler, den ich zurückerhalte, ist ein 500-Internal Server Error und kein 401.

Kann jemand Aufschluss darüber geben, warum dies so ist und was ich anders machen sollte?

Antworten:

0 für die Antwort № 1

Sie haben nur sehr wenige Informationen über den Grund für 500 interne Serverfehler. Bitte teilen Sie die Ausnahmestapel-Ablaufverfolgung (500 interne Serverfehler hätten einen ausgelöst).

Vermeiden Sie auch die Implementierung einer benutzerdefinierten Methode, wenn diese nicht auf der Empfehlung von GWT basiert. Lesen Sie diese Stackoverflow-Abfrage weiter CSRF mit RequestFactory.