2010-06-26 2 views
1

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

ответ

0

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

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

+0

Сохранение транзакционного материала в вашей БД, ни в коем случае не будет защищать вас от фиксации сеанса и проблем с захватом сеанса. (но это все же хорошая идея сохранить его в БД). – Jacco

0

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

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

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

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

0

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

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

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

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

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

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