加密会话对象

时间:2009-05-03 00:27:09

标签: asp.net session encryption

首先:我正在开发一个可以接受信用卡的电子商务网站。为了从“输入您的信息”页面到“确认您的信息”页面,我需要将信用卡信息存储在可以在最终发送到支付网关之前检索到的地方。

我目前倾向于将其存储为会话变量。话虽这么说,我的问题是:

  1. 我是否在会议中存储了一些众所周知的安全失礼?
  2. 会话对象是全局的吗?如果两个人同时提交他们的信息,那么一个人的会话是否可以返回给另一个人的交易?
  3. 在.NET中是否有一种通用的方法来加密/解密会话对象以获得额外的安全性?

2 个答案:

答案 0 :(得分:3)

从ui /工作流的角度来看,确实没有必要存储信用卡信息或确认信息。如果错了,将不予批准。大多数电子商务网站在确认地址,电话等后都要求将信用卡号作为最后一步。

对于会话,会话是特定会话的全局。它不被其他用户共享,并且通常,没有任何方法可以获取其他会话中的数据。因此,不需要加密它,因为它存储在服务器上。

如果您在ViewState中存储敏感信息或通过QueryString传递它,您肯定需要加密它。

答案 1 :(得分:-1)

申请信用卡是销售流程的最后一步。但是如果要对其进行加密,请使用对称AES(rinjdael)加密。为了使用一个非常难以猜测的键,随机创建它并将其存储在会话中。如果您使用的是无cookie会话,则在您需要之前,两者都不会离开服务器。

几乎所有语言都有AES库的版本。在.NET中,包含在System.Security.Cryptography

using System.Security.Cryptography;