Bonjour, je travaille sur le problème XSS (cross site scripting). mon application se développe sur le portail Oracle weblogic. nous utilisons la version Servlet 2.5.
J'ai ajouté ci-dessous 3 lignes de code dans le filtre pour configurer les cookies httponly et sécurisés . Et cela fonctionne correctement.
String sessionid = req.getSession().getId();
res.setHeader("Set-Cookie", "JSESSIONID=" + sessionid + ";HttpOnly");
res.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; secure");
Le problème est que lorsque je me déconnecte et que je me connecte immédiatement dans le même navigateur, je peux me connecter, mais après cela, sur les pages jsp, le problème du délai de session s’est écoulé. nous utilisons des apis liés à weblogic. request.getuserprinical () api renvoie null .. suppose qu'il est défini sur null.
toute idée s'il vous plaît partager.
s'il existe d'autres moyens de définir httponly ou secure flag, aidez-nous.
En fonction des spécificités de votre conteneur Web, la modification des cookies de session gérés par le conteneur dans une application peut amener le serveur d'applications à jeter la session existante et à en créer une nouvelle. Je l'ai observé sur Tomcat, mais cela peut être similaire pour Weblogic.
Si vous utilisez Servlets 3.0, vous pouvez en réalité demander au serveur d'applications de s'assurer que tous les cookies de session sont HttpOnly et Secure avec les fragments suivants:
<session-config>
<cookie-config>
<secure>true</secure>
<http-only>true</http-only>
</cookie-config>
</session-config>
C'est une meilleure approche que le piratage manuel des cookies avec un filtre.
FYI: J'ai également écrit une bibliothèque Java qui injecte un certain nombre d'en-têtes de réponse liés à la sécurité dans les applications basées sur Servlet.
Vous devez utiliser la syntaxe suivante pour définir les indicateurs httponly et securu.
JSESSIONID=ABC3423DF...SDF;HttpOnly;Secure