2011-06-22 28 views
0

我想了解一個JSessionId的唯一性和範圍,因爲它涉及多個未發佈的域。瞭解跨多個域的JSessionId

我讀過Under what conditions is a JSESSIONID created?,仍然有一些問題 -

具體做法是:

如果用戶訪問www.app1.com,並應用發出www.app2.com調用加載數據,有兩個JSESSIONID的創建 - 每個域名一個?

同樣,當電話撥出www.app2.com時,是否有任何有關來自www.app1.com的jsessionid的信息傳遞?

重定向對此有什麼影響? (例如,請求http://app1.com/login.jsp重定向到http://app2.com/login.jsp

回答

2

如果用戶訪問www.app1.com,並應用發出 www.app2.com調用加載數據,有兩個JSESSIONID的創建 - 每個 域?

是的。更準確地說,每個獨立的WebApp都會爲其域名發佈自己的Cookie。因此,如果映射不同的web應用程序,www.app1.com/1和www.app1.com/2將具有不同的cookie。

同樣,當電話打到www.app2.com時,是否有任何關於www.app1.com上的jsessionid傳遞的信息 ?

不,但是請閱讀XSS和CSRF,瞭解爲什麼保護您的應用程序是好的,因爲注入將Cookie傳遞到另一個URL的腳本並不困難。

重定向對此有什麼影響? (例如,請求 http://app1.com/login.jsp重定向到http://app2.com/login.jsp

無任何責任。如果您碰巧已經登錄到兩者,則可能會在之後登錄。註銷一個不會影響另一個。 (如果您希望真正的單一/單一簽名,那麼這兩個應用程序都必須信任第三方,如CAS服務器或Kerberos服務器)。

1

JSESSIONID是會話cookie。該cookie有一個domain集合,因此在您的情況下,您將擁有2個餅乾,這兩個餅乾在domain屬性中均被稱爲JSESSIONID,其路徑不同。