2013-08-01 11 views
23

Mam aplikację internetową działającą na serwerze Tomcat 7. Plik cookie z identyfikatorem sesji ma domyślnie flagi HttpOnly i Secure. Chcę wyłączyć te flagi dla pliku cookie JSESSIONID. Ale to nie zadziała. Zmieniłem to w moim pliku web.xml, ale nie działa.Tomcat 7 plik cookie sessionid wyłączanie tylko protokołu http i bezpieczne

<session-config> 
    <session-timeout>20160</session-timeout> 
    <cookie-config> 
     <http-only>false</http-only> 
     <secure>false</secure> 
    </cookie-config> 
</session-config> 

wiem, że to zagrożenie dla bezpieczeństwa, ponieważ atakujący jest w stanie ukraść ciasteczko i przejąć sesję gdyby znalazł vuln XSS.

Plik cookie należy wysłać przy użyciu protokołu HTTP i HTTPS oraz żądań AJAX.

Edit:

Mam powodzeniem wyłączona flagę HttpOnly dodając następującą opcję do pliku conf/context.xml:

<Context useHttpOnly="false"> 
.... 
</Context> 
+0

Proszę zamknąć to pytanie, masz odpowiedź. Dzięki. – eze1981

+0

Czy dowiedziałeś się, jak wyłączyć zabezpieczenia? – wutzebaer

+2

Najnowsza aktualizacja Chrome sprawia, że ​​jest to bardzo ważne! https://chromium.googlesource.com/chromium/src/+/a26e439d02baa9514b09c637bf5fa9f6790c4c3e –

Odpowiedz

1

nie znalezienia rozwiązania w Tomcat do tego, ale jeśli was” ponownie użyj Apache jako odwrotnego proxy, możesz zrobić:

Header edit* Set-Cookie "(JSESSIONID=.*)(; Secure)" "$1" 

z mod_headers, który zlikwiduje nagłówek w drodze powrotnej, aby usunąć bezpieczną flagę. Nie ładne, ale działa, jeśli jest to krytyczne.

0

Oprócz rozwiązania George'a Powella powyżej dla Apache, jeśli jesteś na IIS, można go rozwiązać w następujący sposób:

  1. Zainstalować moduł URL Rewrite IIS
  2. Dodaj następujące wpisy do pliku web.config

<rewrite> 
 
    <outboundRules> 
 
    <rule name="RemoveSecureJessionID"> 
 
     <match serverVariable="RESPONSE_Set-Cookie" pattern="^(.*JSESSIONID.*)Secure;(.*)$" /> 
 
     <action type="Rewrite" value="{R:1}{R:2}" /> 
 
    </rule> 
 
    </outboundRules> 
 
</rewrite>

To rozwiązanie pochodziło z wersji Pete Freitag's blog

Jak wspomniano powyżej, od czasu ostatniej aktualizacji Chrome (styczeń 2017 r.) Stało się to problemem.

Powiązane problemy