Зачем в Яндекс Деньгах нужна проверка хэша?

V1
На сайте с 30.04.2008
Offline
158
1104

Здравствуйте. Наверное вопрос глупый, но для чего может понадобиться проверка хэш значения в http уведомлении у яндекса?

Ведь хеш формируется же после оплаты? Например если на странице оплаты в адресной строке поменять сумму, например не 1000 руб что просят, а 10, затем обновить страницу и оплатить товар 10 рублями. Платеж пройдет, только продавец получит 10 рублей. Конечно в уведомлении можно проверить параметр withdraw_amount и если сума не соответствует нужной нечего не делать. Вот я и не могу понять на фига тогда нужна проверка sha1_hash...?

HB
На сайте с 02.10.2014
Offline
75
#1

https://tech.yandex.ru/money/doc/dg/reference/notification-p2p-incoming-docpage/#notification-p2p-incoming__verify-notification

Всегда проверяйте значение параметра sha1_hash. Это нужно, чтобы удостовериться:

в целостности данных уведомления;
в том, что уведомление отправлено Яндекс.Деньгами.
V1
На сайте с 30.04.2008
Offline
158
#2

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

Оптимизайка
На сайте с 11.03.2012
Offline
396
#3
Vit12J:
Вот от сюда и вопросы.

Злоумышленник не сможет прислать запрос якобы от имени яндекс-денег, что все оплачено, что непонятного-то?

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
V1
На сайте с 30.04.2008
Offline
158
#4
Оптимизайка:
Злоумышленник не сможет прислать запрос якобы от имени яндекс-денег, что все оплачено, что непонятного-то?

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

Плина... пока писал, дошло. Это для того что бы на тот http адрес что отправляется уведомление, кто то не отправил свой запрос со своими данными, то есть это защита самого уведомления. Вот я тупень. :)

Мозг не принимал значение ключевой фразы:

что уведомление отправлено Яндекс.Деньгами

:)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий