2011-01-29 125 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