簡體   English   中英

當ASP.NET Web應用程序設置Cookie時,它的安全性如何?

[英]How secure are Cookies when set by an ASP.NET web application?

我想知道一個cookie是多么安全,以及它是否可以被設置它的其他應用程序讀取。

我想設置一個cookie,用於存儲我網站的一些敏感數據,以便隨時閱讀。

其他應用程序可以讀取我的應用程序設置的cookie 如果是這樣,我是否需要加密存儲在cookie中的數據?

注意:我無權訪問SSL。

編輯:我想存儲的信息是用戶詳細信息。 我正在創建一個白標網站。 根據特定網址的請求(例如www.mysite.com/joebloggs),我希望將有關Joe Bloggs的用戶數據存儲在客戶端計算機上。 當客戶返回www.mysite.com時,我希望從cookie中讀取Joe Bloggs上的數據,以便我可以跟蹤它。

在用戶計算機中運行的任何代碼(包括瀏覽器插件)都可以隨時讀寫cookie,而您無法做到這一點。 (加密除外)

嗅探網絡的任何人都可以讀取和寫入非HTTPS站點的所有cookie(如果適用)。

其他域上的Web應用程序無法讀取或寫入cookie,除非在兄弟域的有限情況下(例如, x.cloudapp.nety.cloudapp.net )(請參閱cookie折騰)

如果您可以避免在cookie中包含敏感數據,那將是最好的。 正如在另一個答案中所說的那樣,用戶計算機上的任何內容都可能始終受到損害。

但是,如果您需要,則應始終加密數據。 表單身份驗證cookie上的默認加密是通過DPAPI使用運行Web應用程序的用戶上下文和計算機密鑰,因此它不適合負載平衡的環境。

在這種情況下,您應該通過數字證書(例如RSA)進行加密。

對於你管理自己的cookies,您就必須使用加密API,或者一些包裝或實用工具類,比如這一個 對於Forms Authentication cookie,有一些保護設置可讓您配置加密機制。

如果您對使用SSL的安全性不夠關注,那么一個簡單且相對簡單的選擇是為用戶生成新的Guid,將Guid存儲在數據庫中,並將Guid寫入cookie。

我絕對不會用它來保護信用卡或銀行或任何高度敏感的東西,但如果你需要保護這些數據,那么SSL是最低要求。

在一天結束時,可以在沒有SSL的情況下嗅探流量,因此任何通過網絡發送的cookie都可能被具有惡意意圖的人嗅探,如果該cookie用於識別系統上的用戶,那么他們可以非常容易冒充那個用戶。 使用Guid的好處是,如果有人設法找到1個人的cookie,他們將無法猜出一個模式來找出其他人的,所以雖然1個人可能會受到損害,但至少你的整個用戶群不會!

可能合理的方法是生成一個guid和一個到期日,加密它們並將其設置為cookie - 然后檢查用戶帶回cookie的到期日期,並定期更改guid。 同樣,這對網絡嗅探並不安全,但它確實提供了一些安全措施以及跨會話記住用戶的便利性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM