2009-05-03 2 views
3

Прежде всего: я работаю над сайтом электронной коммерции, который будет принимать кредитные карты. Чтобы перейти с страницы «Введите свою информацию» на страницу «Подтвердить свою информацию», мне нужно где-то хранить информацию о кредитной карте, чтобы ее можно было получить до того, как она в конечном итоге будет отправлена ​​на платежный шлюз.Зашифровать объект сеанса

В настоящее время я склоняюсь к хранению его как переменной сеанса. Это, как говорится, мой вопрос:

  1. Я беру на себя некоторые известные подделки безопасности, сохраняя это в сеансе?
  2. Является ли объект сеанса глобальным? Если два человека одновременно представят свою информацию, может ли быть возвращена сессия одного человека для транзакции другого лица?
  3. Есть ли общий способ в .NET для шифрования/дешифрования объектов сеанса для дополнительной безопасности?

ответ

3

С точки зрения ui/workflow, действительно нет необходимости хранить информацию о кредитной карте или подтверждать ее. Если это неправильно, оно не будет одобрено. Большинство сайтов электронной коммерции запрашивают номер кредитной карты в качестве последнего шага после подтверждения адреса, телефона и т. Д.

Что касается сеанса, сессия является глобальной для конкретной сессии. Он не используется другими пользователями и, в общем, нет доступа к данным в других сеансах. Таким образом, нет необходимости шифровать его, поскольку он хранится на сервере.

Если вы храните конфиденциальную информацию в ViewState или передали ее через QueryString, вам определенно необходимо ее зашифровать.

0

Запрос кредитной карты - последний шаг в процессе продаж. Но если вы хотите зашифровать его, используйте симметричное шифрование AES (rinjdael). Чтобы использовать очень трудно угадать ключ, создайте его случайным образом и сохраните его на сеансе. Если вы используете сеанс без cookie, ни один из них не выйдет из сервера, пока вы этого не захотите.

Существует версия библиотек AES практически для любого языка. В .NET включены в System.Security.Cryptography

using System.Security.Cryptography; 
Смежные вопросы