Post / Redirect / Get Model - Сеансы и безопасность - PullRequest
1 голос
/ 26 июня 2010

Я собираюсь создать форму электронной коммерции, используя модель PRG.Мой вопрос заключается в том, как лучше хранить информацию о кредитной карте пользователя при каждом переходе на другую страницу (ввод страницы 1, просмотр страницы 2 / отправка, спасибо странице 3) - это СЕССИЯ, лучший способ справиться с этим, и достаточно ли она безопасна??Если бы не хранить в сессии, как еще я буду это делать?Я бы сбросил SESSION var после завершения транзакции.Есть ли простой способ для шифрования информации, пока она хранится в СЕССИИ?Ваши мысли оценили.

Ответы [ 3 ]

0 голосов
/ 26 июня 2010

Использование SESSION в PHP на самом деле не средство шифрования потенциально конфиденциальной информации, такой как кредитные карты, но предоставление программистам возможности получать информацию о состоянии в протоколе без сохранения состояния (HTTP).При этом, если вы хотите иметь возможность безопасно обрабатывать транзакции, вы, вероятно, захотите взглянуть на SSL, который использует криптографию с открытым ключом для создания безопасного соединения между клиентом и вашим веб-сервером.Это протокол, используемый для соединений HTTPS.

Использование SESSION по сравнению с использованием шифрования - две разные области веб-приложения, и создание безопасного соединения в значительной степени не зависит от использования SESSION.С SESSION вы сможете хранить информацию об их кредитной карте, а с помощью SSL вы сможете безопасно обрабатывать транзакции.

К счастью для вас, внедрение SSL относительно просто и абстрагировано:

<form method="post" action="https://securestuff.ecommerce.com/process.php">

Обратите внимание на использование https:// вместо http://.

Если вы хотите сохранить номера кредитных карт в базе данных, это другой зверь, но, похоже, он вам не понадобится:)

0 голосов
/ 26 июня 2010

Сеансы не настолько безопасны, есть риски безопасности, такие как:

Я бы посоветовал вам хранить конфиденциальные данные в базе данных вместо этого в зашифрованном виде и читать их на разных страницах.

0 голосов
/ 26 июня 2010

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

При этом вам не следует этого делать.Проверьте обслуживание вашей кредитной карты.Скорее всего, они предлагают возможность выполнить процесс авторизации и фактическую зарядку карты как двухэтапный процесс.Вы можете немедленно авторизовать карту и сохранить информацию о транзакции (в базе данных!) Вместо хранения данных кредитной карты пользователя.Позже, когда придет время фактически зарядить карту, вы можете предоставить информацию из авторизации.Обратитесь к документации API процессора кредитной карты для получения дополнительной информации об этой технике.

Этот процесс может не подходить для вещей, которые могут иметь нетривиальное время обработки.Возможно, вы захотите провести авторизацию на карточке пользователя только на день или два.

Некоторые процессоры позволяют вместо этого поместить небольшую авторизацию на карту (скажем, $ 1-5), а затем отменить транзакцию.Позже они позволяют вам использовать исходную авторизацию в качестве справочной информации и списывать с карты необходимую сумму, не имея при этом информации об оригинальной карте.Не все процессоры позволят это.Проконсультируйтесь с вашим.

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