2009-05-03 56 views
3

首先:我正在接受信用卡的电子商务网站上工作。为了从“输入您的信息”页面进入“确认您的信息”页面,我需要将信用卡信息存储在最终被发送到支付网关之前可以检索的地方。加密会话对象

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

  1. 我是否犯了一些众所周知的安全假通过存储这个会话?
  2. 会话对象是否全局?如果两个人同时提交他们的信息,一个人的会话是否可以为他人的交易返回?
  3. 在.NET中有一种常见的方式来加密/解密会话对象以获得额外的安全性吗?

回答

3

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

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

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

0

申请信用卡是销售过程中的最后一步。但是,如果你想加密它,使用对称AES(rinjdael)加密。为了使用一个非常难猜的密钥,随机创建它并将它存储在会话中。如果您使用的是不需要cookie的会话,那么两者都不会离开服务器,直到您需要为止。

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

using System.Security.Cryptography;