HOW TO:刪除 Cookie
更新:2007 年 11 月
您無法直接刪除使用者電腦上的 Cookie。然而,您可以將 Cookie 的到期日設定為過去的日期,引導使用者的瀏覽器刪除 Cookie。使用者下一次要求定義域或路徑中設定 Cookie 的網頁時,瀏覽器會判斷 Cookie 已過期然後加以移除。
注意事項: |
---|
呼叫 Cookies 集合中的 Remove 方法會從伺服器端的集合移除 Cookie,因此不會將 Cookie 傳送至用戶端。然而,這個方法不會從用戶端移除 Cookie (如果 Cookie 已經存在的話)。 |
若要指派過去的到期日給 Cookie
判斷 Cookie 是否存在,如果是的話,請使用相同名稱建立新的 Cookie。
將 Cookie 的到期日設定為過去的時間。
將 Cookie 加入 Cookies 集合物件。
下列程式碼範例,示範了如何在 Cookie 上設定過去的到期日。
If (Not Request.Cookies("UserPreferences1") Is Nothing) Then Dim myCookie As HttpCookie myCookie = New HttpCookie("UserPreferences1") myCookie.Expires = DateTime.Now.AddDays(-1D) Response.Cookies.Add(myCookie) End If
if (Request.Cookies["UserSettings"] != null) { HttpCookie myCookie = new HttpCookie("UserSettings"); myCookie.Expires = DateTime.Now.AddDays(-1d); Response.Cookies.Add(myCookie); }
編譯程式碼
這項範例需要:
ASP.NET Web 網頁。
之前撰寫名為 UserSettings 的 Cookie,如同主題 HOW TO:撰寫 Cookie 中所說明。
穩固程式設計
基於安全性考量,您可以只讀取相同網域的網頁所設定之 Cookie。如果已設定 Cookie 的 Path 屬性,只有在網域這個路徑中的網頁和子資料夾,才能夠使用這個 Cookie。
當讀取特定 Cookie 值時,測試 Cookie 是否存在及是否具有值,否則會發生例外狀況。
安全性
瀏覽器只能將資料傳回原來建立 Cookie 的伺服器。然而,惡意的使用者卻可以存取 Cookie,並讀取其內容。不要在 Cookie 中存放機密的資訊,例如,使用者名稱或密碼。而是儲存可用來查閱伺服器上機密資訊的語彙基元 (Token)。此外,Cookie 可能已遭他人修改,因此您應該使用與避免跨站台指令碼處理攻擊的相同方法,處理 Cookie 中的任何資料。如需詳細資訊,請參閱 HOW TO:利用將 HTML 編碼套用至字串的方法,防止會在 Web 應用程式中發生的指令碼攻擊。