Самый безопасный способ передать номер кредитной карты через многоступенчатую форму?

На шаге 3 у меня есть форма, которая принимает кредитную карту, Шаг 4 переиздает информацию включая последние 4 цифры кредитной карты и Шаг 5, который я должен знать, что полный CC # обрабатывает его и отправляет, это посредством моего подключения HTTPS стороннему поставщику - должно я хранить его через скрытые исходные данные или $_SESSION таким образом, я могу получить доступ к нему промежуточный 3-й и 5-й шаг?

К вашему сведению: Мой весь сайт уже https'd.

5
задан meder omuraliev 16 February 2010 в 23:35
поделиться

5 ответов

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

9
ответ дан 18 December 2019 в 13:13
поделиться

SSL не защищает данные, хранящиеся на диске. Кроме того, данные сессии PHP по умолчанию хранятся в файловой системе в каталоге temp с минимальными правами. Таким образом, данные не только хранятся в открытом виде, но и могут быть доступны многим различным пользователям системы (в зависимости от конфигурации вашего веб-сервера).

Если вы хотите реализовать многоэтапный процесс оформления заказа, я бы предложил сделать некоторую магию AJAX/Javascript на стороне браузера. Вы можете собирать информацию для выставления счетов с помощью серии скрытых/скрывающихся DIV и публиковать весь набор данных за один раз, отправляя данные CC один раз на ваш сервер, который затем передает данные CC вашему платежному процессору.

2
ответ дан 18 December 2019 в 13:13
поделиться

Определенно не в скрытом поле формы. Если пользователь уйдет, сохранит страницу или нажмет кнопку "назад", то полная информация о CC будет доступна. Компьютер может быть общим для других.

Если вы сохраняете CC на диске/базе данных, то CC должна быть зашифрована, иначе вы нарушите требования Payment Card Industry (PCI). Для удобства можно хранить последние 4 цифры отдельно в открытом виде.

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

Еще одна возможность - переделать клиентскую часть так, чтобы различные шаги были просто вызовами ajax (cc находится в переменной js, а не в поле формы) и использовать CSS для отображения/скрытия различных div'ов - на последнем шаге отправлять всю информацию на сервер.

2
ответ дан 18 December 2019 в 13:13
поделиться

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

Серьезно, выбирайте.

1
ответ дан 18 December 2019 в 13:13
поделиться

ни в коем случае. вы должны хранить его (как-то) зашифрованным на сервере.

0
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: