Кодировка суммы в PayPal платежа - PullRequest
1 голос
/ 13 октября 2009

Мне трудно понять, как запретить людям редактировать сумму в моей корзине с помощью таких инструментов, как firebug. Как убедиться, что пользователи не могут редактировать скрытое поле? Могу ли я кодировать сумму перед отправкой в ​​PayPal?

Спасибо!

Francois

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

Хорошо, превращаем комментарий в ответ ...

Не кодируйте скрытый файл! Когда клиент совершает платеж, PayPal обрабатывает транзакцию и сообщает вашей автоматизированной системе, что он получил платеж. Он также должен сказать вам, сколько клиент заплатил вам! Затем вы сравниваете сумму, выплаченную с исходным счетом, и, если есть разница, вы просто сообщаете пользователю, что платеж не завершен. (Если, конечно, они не заплатили слишком много.)

Как говорит Крис Лайвли, не доверяй клиенту! Всегда проверяйте сумму, которая была оплачена. После того, как вы это сделаете, не имеет значения, взломает ли пользователь какие-либо скрытые поля, так как вы проверяете это позже.

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

1 голос
/ 13 октября 2009

Прошу прощения, но вы не можете запретить людям возиться с переменными html / post. Одна распространенная мантра безопасности - «Не доверяй клиенту».

Процесс должен состоять в том, чтобы клиент снова отправил сообщение на ваш сервер. Он пересчитывает итоги или что-то еще, а затем отправляет это PayPal. Очевидно, что должны быть некоторые проверки вменяемости, такие как предотвращение нулевых или отрицательных величин; однако сам клиент НЕ должен контролировать итоги.

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