Deaktivieren Sie HttpOnly Spring boot

8

Ich möchte HttpOnly-Sitzungen deaktivieren, von denen ich glaube, dass sie für Spring Boot Standard sind. Wie würde ich HttpOnly beim Springboot abschalten?

Ich habe derzeit einen Code wie:

%Vor%

Dies gibt einen Antwortheader für den HTTP-Aufruf zurück:

%Vor%

Beachten Sie das HttpOnly-Flag. Ich würde das gerne abstellen. Wie mache ich das?

Seitennotiz: Ja, ich weiß, dass httpOnly eine Sicherheitsfunktion ist, und indem ich sie ausschalte, kann JavaScript auf meinen Cookie, d. h. XSS, zugreifen.

Außerdem habe ich keine andere Konfiguration als Standard.

%Vor%     
Nick Humrich 15.03.2014, 18:50
quelle

3 Antworten

4

Tomcat hat ein Kontextattribut namens useHttpOnly , das Folgendes überprüft:

  

Sollte das HttpOnly-Flag in Sitzungscookies gesetzt sein, um den Client zu verhindern   Side-Skript vom Zugriff auf die Sitzungs-ID? Der Standardwert ist wahr.

Sie müssen es also auf false setzen. Die verknüpfte Konfiguration gilt für nicht eingebettete Tomcat-Server. Wir müssen einen Weg finden, es mit eingebetteten Tomcat zu tun.

So machen Sie es. Sie deklarieren eine Methode @Bean zum Hinzufügen eines EmbeddedServletContainerFactory zum Kontext. Sie konfigurieren das zurückgegebene TomcatEmbeddedServletContainerFactory , indem Sie ein TomcatContextCustomizer angeben, das die entsprechende Eigenschaft konfiguriert.

%Vor%

Diese Lösung funktioniert, weil Sie Tomcat verwenden. Bei verschiedenen Servlet-Containern wäre die Lösung anders.

    
Sotirios Delimanolis 15.03.2014, 20:29
quelle
12

Eine andere Alternative zu der akzeptierten Antwort, die in den Spring-Boot passt, ist das Überschreiben der Customize-Methode von EmbeddedServletContainerCustomizer .

Implementieren Sie zuerst die Schnittstelle:

%Vor%

Fügen Sie dann eine Überschreibung für die customize-Methode hinzu:

%Vor%

Übrigens habe ich festgestellt, dass httpOnly für mich überhaupt nicht eingestellt wurde. Also musste ich diese Methode verwenden, um httpOnly einzuschalten (offensichtlich ist meine obige Einstellung 'wahr').

Sie können diese Methode auch verwenden, um andere Dinge in tomcat anzupassen, z. B. gzip für json einschalten und die max http-Headergröße erweitern (im Fall der Kerberos-Authentifizierung musste ich dies tun):

%Vor%     
JimB 12.06.2014 15:10
quelle
3

Zumindest bei Spring Boot & gt; = 1.4 ist es noch einfacher, verwenden Sie einfach die folgende Eigenschaft:

%Vor%

Wie in der offiziellen Dokumentation dokumentiert.

    
Enrico M. Crisostomo 18.11.2016 15:09
quelle

Tags und Links