2010-07-22 134 views

回答

1

總之,你不能。你不能容忍用戶的瀏覽器人質,如果你可以做你想做的事情(例如,在頁面退出時重定向),這就是漏洞利用。 AJAX是您服務器端調用的唯一選項,正如您所述,這也是不可靠的。

+0

我不想隱藏瀏覽器......但這很容易:只需在OnBeforeUnload事件之後觸發警報,確認或重定向。我已經在我的機器上完成了Firefox/IE 7 但是我不想這麼做......我只是想作爲最後一個動作向服務器發送一個標誌來終止會話。每個會話超過7 MB,如果用戶關閉瀏覽器,它必須被釋放。 – 2010-07-22 12:42:25

+0

如果瀏覽器崩潰怎麼辦?如果互聯網連接斷開怎麼辦?如果JS首先未啓用,該怎麼辦?忘記試圖檢測用戶何時離開。只需定期清理不活動的會話。 – Quentin 2010-07-22 13:08:38

+0

@Lynx - 您聯繫服務器的兩種方法是重定向到那裏和AJAX(您現在不能從新元素創建GET請求)。每個平臺都會超時,幾乎所有的平臺都提供了一個清理機制(ASP.Net沒有什麼不同,默認情況下是20分鐘)。堅持服務器端清理,有一個原因*每個人*這樣做...你不覺得如果這是可能的,它會完成嗎?此外,會話對於瀏覽器窗口並不是唯一的,它在標籤頁之間共享,如果我打開另一個標籤頁會怎麼樣?這種方法也會殺死該標籤。 – 2010-07-22 13:45:45

1

我不知道在「onBeforeUnload」期間是否可以這樣做,但也許可以嘗試。
注入圖像您的網頁,如:

<img src="yourscript?param1=value1&param2=value2" /> 

從服務器端只返回一個空的圖像。

0

您可能需要掛接同步調用而不是AsynchronousJAX。

相關問題