Rezolvarea fixării sesiunii în JBoss

Trebuie să împiedic o Fixare a sesiunii , un anumit tip de deturnare a sesiunii, într-o aplicație web Java care rulează în JBoss. Totuși, se pare că idiomul standard nu funcționează în JBoss . Poate aceasta să fie rezolvată?

0
fr hi bn

4 răspunsuri

This defect (found here) points the way to the solution. The Tomcat instance that runs in JBoss is configured with emptySessionPath="true", rather than "false", which is the default. This can be modified in .../deploy/jboss-web.deployer/server.xml; both the HTTP and AJP connectors have this option.

Funcția însăși este utilizată pentru a elimina calea de context (de ex. "Foo" în http://example.com/foo) să fie incluse în cookie-ul JSESSIONID. Setarea lui la falsă va rupe aplicațiile care se bazează pe autentificarea între aplicații, care include lucruri construite folosind anumite cadre de portal. Cu toate acestea, nu a afectat negativ cererea în cauză.

0
adăugat
Lucrez cu JBoss 6.1 și tocmai l-am lovit de această problemă. Nu există nici o opțiune emptySessionPath în server.xml meu. Deci, cum se poate face acest lucru pentru versiunea 6.1?
adăugat autor Zólyomi István, sursa
Dacă cineva este interesat, am găsit o soluție. Căutați răspunsul lui @ Rp- în acest subiect: stackoverflow.com/questions/11028145/…
adăugat autor Zólyomi István, sursa

O soluție este să stocați adresa clientului în sesiune. Un wrapper de răspuns trebuie să valideze adresa clientului setată în sesiune este aceeași cu cea care accesează sesiunea.

0
adăugat
Sugestia dvs. este utilă pentru deturnarea sesiunii în general, dar nu se referă în mod specific la fixarea sesiunii.
adăugat autor Warren Blanchet, sursa

Această problemă și cazul specific în care apare este o problemă atât în ​​Tomcat, cât și în JBoss. Tomcat împărtășește efectul emptySessionPath = "adevărat" (și, de fapt, JBoss o moștenește de la Tomcat).

Acest lucru pare a fi un bug în Tomcat și JBoss atunci când încercați să preveniți atacurile de fixare a sesiunii, dar servletul spec (cel puțin versiunea 2.3) nu necesită de fapt ca JSESSIONID să fie definit sau redefinit în funcție de orice logică specifică. Poate că acest lucru a fost curățat în versiunile ulterioare.

0
adăugat

Am aflat mai jos fragmentul de setare a codului de la unul din cei patru. Și am adăugat sub liniile. Dar când imprimă ID-ul sesiunii după și înainte de a intra în aplicație, este aceeași. Cum aș testa sesiunea de fixare.

  1. D: \ jboss-5.1.0.GA \ bin \ run.cof și adăugați linia de mai jos. setați "JAVA_OPTS =% JAVA_OPTS% -Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = false"

  2. în fiecare context.xml al aplicațiilor jboss. D: \ jboss-5.1.0.GA \ server \ implicit \ Deploy \ jbossweb.sar \ context.xml             

0
adăugat