2009-05-02 51 views
0

我通過創建Default.aspx和名爲login.aspx的自定義登錄頁面實現了表單身份驗證。如果未經身份驗證的用戶瀏覽到Default.aspx,它們將被重定向到login.aspx,並且只有在找到匹配的提供憑據時,用戶纔會重定向到default.aspx如何防止所有Firefox瀏覽器實例使用相同的身份驗證Cookie?

  • 但使用Firefox時,它出現在所有瀏覽器實例使用相同的身份驗證cookie的實例,因此如果用戶在瀏覽器B1日誌中爲用戶U1,那麼所有的瀏覽器實例訪問該Web應用程序將作爲記錄用戶U1。因此,如果例如第一次瀏覽器實例B1請求Default.aspx,它將立即被授予訪問權限。

  • 如果我登錄的用戶U1後,我上網到login.aspx並登錄使用不同的用戶名(比如用戶U2),然後在回傳的所有瀏覽器(以前登錄的用戶U1)現在將作爲記錄用戶U2。

如何防止此類行爲,以便每個瀏覽器實例都能接收到自己的身份驗證cookie?

+0

請明確你的意思是「瀏覽器實例」。你開始一個新的firefox.exe過程? – 2009-05-03 00:01:09

+0

是的,我的意思是開始新的firefox.exe(儘管現在事實證明沒有新的進程實際開始) – SourceC 2009-05-03 19:07:36

回答

5

每個瀏覽器實例都有自己的一組cookie。和歷史。和書籤。因爲每個正在運行的實例都需要附加到它自己的配置文件中。

但是,任何給定的實例都可以打開多個選項卡和窗口。那些將共享cookie。如果這不適合你,那麼請不要使用cookies ...

如果你只是想讓測試變得更簡單,爲什麼不建立一個單獨的測試配置文件並啓動一個獨立的Firefox實例?

+1

爲什麼單獨的實例有它自己的一組cookie?一般來說,如果我去了一個網站,並設置了一個cookie,我可以重新啓動計算機,並且我的瀏覽器會發回相同的cookie。對於沒有重新啓動的兩個瀏覽器實例,還有多少? – 2009-05-03 00:02:39

3

一個快速實驗向我展示了Shog9的含義。啓動Firefox。然後啓動Firefox的另一個「實例」。然後看任務管理器,你會看到你只有一個firefox.exe進程在運行。

我認爲他的意思是說你從未真正見過兩個Firefox實例。你只看到了同一個實例運行兩個窗口。當然,那些共享相同的cookie。

我認爲這意味着爲了實際上有單獨的實例,他們將不得不在單獨的登錄或用戶配置文件下運行,他們將具有單獨的Cookie集。


編輯:一些在Firefox上型材資源:

1

我第二個,你的問題是措辭含糊。 Firefox允許您擁有任意數量的Cookie集。每組必須是Firefox配置文件的一部分。每個配置文件可以有任意數量的窗口和進程打開(注意,爲避免加入現有進程,您必須使用no-remote)。

我想你一直在使用多個窗口具有相同的配置文件,預計將共享一個cookie集。

相關問題