2012-03-29 76 views
0

在一個Web應用程序中,我使用了幾個過濾器,並在其中一個過濾器中使用了BalusC描述爲「會話濫用」的內容。基本上在Filter我做這樣的事:會話屬性從過濾器傳遞給servlet的機制是什麼?

request.getSession().setAttribute("abuse", ...); 

一會兒,後來,在Servlet中,我讀回這個屬性。瀏覽器接收到302並執行重定向

我使用一個會話屬性,而不是一個請求屬性,因爲我在做一個重定向而這也正是我迷路了......

後,如何做的Tomcat (或任何其他Java webapp服務器)知道後續GET(重定向後的那個)與第一個Filter(重定向發生前的那個)內部返回的會話屬於相同的「會話」?

即使客戶端的瀏覽器同時關閉JavaScript和Cookies,也能正常工作AND如果禁用JSESSIONID?

我要指出的是JSESSIONID是搜索引擎優化和用戶友好性目的,禁用:就像stackoverflow.com也從來沒有表現出超長的URL與他們毫無意義technobabbles,我的web應用程序沒有任何雖然JavaScript和Cookies可以由用戶關閉。所以我想知道,即使這三個「客戶端功能」不可用,我所做的「會話濫用」是否仍然有效。

回答

1

如果禁用了Cookie並禁用了網址重寫,那麼Servlet容器不能跟蹤會話。實際上,我認爲一些人仍然可以使用SSL - 會話跟蹤內置於SSL中,但我不確定許多servlet容器支持這種方法,並且它需要純SSL。

如果您不跟蹤會話,那麼每個會話都會被創建併成爲孤兒。

相關問題