Шифровать объект сеанса - PullRequest
2 голосов
/ 03 мая 2009

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

Я сейчас склоняюсь к тому, чтобы сохранить его как переменную сеанса. При этом мой вопрос:

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

Ответы [ 2 ]

3 голосов
/ 03 мая 2009

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

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

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

0 голосов
/ 03 мая 2009

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

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

using System.Security.Cryptography;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...