На шаге 3 у меня есть форма, которая принимает кредитную карту, Шаг 4 переиздает информацию включая последние 4 цифры кредитной карты и Шаг 5, который я должен знать, что полный CC # обрабатывает его и отправляет, это посредством моего подключения HTTPS стороннему поставщику - должно я хранить его через скрытые исходные данные или $_SESSION
таким образом, я могу получить доступ к нему промежуточный 3-й и 5-й шаг?
К вашему сведению: Мой весь сайт уже https'd.
В качестве последнего шага выберите номер кредитной карты, чтобы не хранить его. Хранение этой информации связано с множеством юридических проблем.
SSL не защищает данные, хранящиеся на диске. Кроме того, данные сессии PHP по умолчанию хранятся в файловой системе в каталоге temp с минимальными правами. Таким образом, данные не только хранятся в открытом виде, но и могут быть доступны многим различным пользователям системы (в зависимости от конфигурации вашего веб-сервера).
Если вы хотите реализовать многоэтапный процесс оформления заказа, я бы предложил сделать некоторую магию AJAX/Javascript на стороне браузера. Вы можете собирать информацию для выставления счетов с помощью серии скрытых/скрывающихся DIV и публиковать весь набор данных за один раз, отправляя данные CC один раз на ваш сервер, который затем передает данные CC вашему платежному процессору.
Определенно не в скрытом поле формы. Если пользователь уйдет, сохранит страницу или нажмет кнопку "назад", то полная информация о CC будет доступна. Компьютер может быть общим для других.
Если вы сохраняете CC на диске/базе данных, то CC должна быть зашифрована, иначе вы нарушите требования Payment Card Industry (PCI). Для удобства можно хранить последние 4 цифры отдельно в открытом виде.
Обратите внимание, если вы используете сеансы (по другим причинам), вы должны позаботиться об атаках на сеанс, включая, но не ограничиваясь, фиксацией сеанса.
Еще одна возможность - переделать клиентскую часть так, чтобы различные шаги были просто вызовами ajax (cc находится в переменной js, а не в поле формы) и использовать CSS для отображения/скрытия различных div'ов - на последнем шаге отправлять всю информацию на сервер.
Не храните ее вообще. Есть много средств обработки кредитных карт. Не делайте этого, если только вам не обязательно иметь эту функцию дома.
Серьезно, выбирайте.
ни в коем случае. вы должны хранить его (как-то) зашифрованным на сервере.