2013-09-27 7 views
1

Я строю платежный шлюз для своей организации. Различные приложения смогут отправлять POST-данные шлюзу для инициализации транзакции. Некоторые из этих данных будут состоять из двух кодов счетов и суммы в долларах.Платежный шлюз: нужен хэш информации?

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

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

Этого будет достаточно? Есть ли проблемы с моей теорией?

+0

Есть ли причина, по которой вы не можете использовать '$ _SESSION' для этой цели? .. – Elen

+0

Вы не упомянули шифрование. Вы используете SSL для этих сообщений? Если да, не забудьте добавить это к вопросу. – webbiedave

+0

@webbiedave: Да, все сообщения превышают https. Я не вижу, насколько это актуально, но я пытаюсь защитить целостность информации, отправленной из браузера конечного пользователя, а не предотвращать попадание человека в середину. – Pickle

ответ

1

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

Другой вариант, который используют банки, заключается в том, чтобы сделать платеж отдельно от должности: сформировать платежный запрос с того места, которое действительно знает цены (сервер?) И передать этот номер вашему клиенту. Затем позвольте им связаться с вашим платежным шлюзом, используя этот номер, вместо того, чтобы позволить им размещать какую-либо сумму. Там не будет никаких подделок.

Первый вариант используется несколькими поставщиками платежей, которых я знаю, второй - тот, который мы используем прямо сейчас с нашим банком.

Для дополнительной безопасности личной информации, пусть результат также содержит хеши, которые вы знаете, поэтому, когда кто-то (пользователь?) Запрашивает страницу «спасибо за оплату», вы можете проверить, был ли он обычным пользователем.

+0

Не могли бы вы рассказать о банковском процессе? Я немного неясен. Как мой процесс в настоящее время работает (или планируется работать). Стороннее приложение создает и автоматически отправляет HTML-форму на платежный шлюз. Платежный шлюз принимает данные, записывает транзакцию, генерирует другую форму и автоматически отправляет наш процессор платежей. Я могу проверить транзакцию с процессором конечных платежей, но я хочу использовать хеш для проверки данных, отправленных на платежный шлюз. – Pickle

Смежные вопросы