it-swarm.com.de

so legen Sie httponly und Session-Cookie für die Java-Webanwendung fest

Hallo, ich arbeite an XSS (Cross Site Scripting). Meine Anwendung wird auf dem Oracle Weblogic-Portal entwickelt. Wir verwenden die Servlet 2.5-Version.

Ich habe im Filter 3 Zeilen Code für das Setzen von httponly und sicheren Cookies. Hinzugefügt, und es funktioniert einwandfrei.

String sessionid = req.getSession().getId();
res.setHeader("Set-Cookie", "JSESSIONID=" +  sessionid + ";HttpOnly");
res.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; secure");

Das Problem ist, dass ich mich abmelden und sofort im selben Browser anmelden kann, aber ich kann mich auf den jsp-Seiten anmelden, und ich bekomme ein Timeout-Problem für die Sitzung. Wir verwenden weblogische Apis. request.getuserprinical () api gibt null zurück. Ich denke, es wird auf null gesetzt.

jede idee bitte teilen.

wenn es andere Möglichkeiten gibt, httponly oder das sichere Flag zu setzen, helfen Sie bitte.

12
Kiran

Abhängig von den Besonderheiten Ihres Web-Containers kann das Ändern von in einem Container verwalteten Sitzungscookies innerhalb einer App dazu führen, dass der App-Server die vorhandene Sitzung annimmt und eine neue erstellt. Ich habe dies bei Tomcat beobachtet, kann aber für Weblogic ähnlich sein. 

Wenn Sie Servlets 3.0 verwenden, können Sie den App-Server tatsächlich anweisen, sicherzustellen, dass alle Sitzungscookies HttpOnly und Secure mit den folgenden Fragmenten sind:

<session-config>
  <cookie-config>
    <secure>true</secure>
    <http-only>true</http-only>
  </cookie-config>
</session-config>

Dies ist ein besserer Ansatz, als manuell mit einem Filter auf die Cookies zu hacken.

Zu Ihrer Information: Ich habe auch eine Java-Bibliothek geschrieben, die eine Reihe sicherheitsbezogener Antwortheader in Servlet-basierte Anwendungen einfügt.

19
Jason Nichols

Sie müssen die folgende Syntax verwenden, um sowohl httponly- als auch securu-Flags festzulegen

JSESSIONID=ABC3423DF...SDF;HttpOnly;Secure
1
Koray Güclü