2011-01-29 126 views
3

如果我在會話變量中添加了一些非常敏感的信息,它有多安全?客戶是否可以訪問編寫流氓頁面並對我的應用程序進行ajax調用?asp.net會話安全

謝謝。

回答

2

如果您確實需要在請求之間存儲該數據,那麼您應該存儲在服務器端。

存儲信息的請求之間使用您有以下選擇:

  • 隱藏字段:你不應該用它來存儲敏感信息,因爲用戶(或者惡意的用戶)可以得到的信息;你應該避免在這裏存儲敏感信息,但如果你真的真的需要它,你應該加密視圖狀態;
  • Cookies:您絕對不應該使用它來存儲敏感信息。像隱藏字段一樣,很容易看到裏面的信息。
  • 會話:如果您確實需要存儲該數據,請使用以下地址。在IT世界裏,沒有什麼安全的,但這是保存這些信息的更安全的地方。

我想我沒有忘記任何東西。

+0

你覺得會是一個安全的地方例如存儲信用卡號碼或用戶ID? – frenchie 2011-01-30 00:50:56

+0

那麼,如果你需要在請求之間保存它(你不應該Imho),你應該使用SecureString來做到這一點。信用卡號碼是一個非常敏感的信息,所以很可能你應該以不同的方式構建應用程序。 – 2011-02-03 10:46:12

2

總之,因爲它存儲在服務器上,所以應該是安全的。

該變量將是安全的,除非你公開它。你不能只是任意調用ajax調用(或任何其他類型的調用)來檢索會話變量。你必須能夠編寫在服務器上執行的代碼。

但是,如果有人能夠劫持您的用戶的會話,他們將能夠在任何顯示它的頁面上看到它(如果你這樣做)。但是,這個安全問題並不侷限於會話變量。如果你擔心這個,you might want to use HTTPS

1

在處理信用卡數據時,您必須非常小心。這不是你可以輕視的,因爲有各種合規條例和法律要考慮。基本上,Session是我會考慮的唯一地方...如果我做到了。我仍然會加密它。但事實上,如果你能提供幫助,我建議不要存儲任何信用卡數據。有很多支付系統,銀行也提供處理工具。如果您讓用戶在交易過程中進行交易,請保持輸入安全,並且不要存儲任何信息,這從法律角度來看是最安全的。保持數據不會帶來風險。

如果您必須保留的信用卡資料請參閱下面的PCI規定: PCI Compliance Guide

此外,您可能會發現有用的本指南安全會話使用: ASP.NET Fast, Scalable, Secure Sessions