Возможно ли изменить данные вызываемых функций Firebase на Front End? - PullRequest
0 голосов
/ 08 апреля 2019

Я использую Stripe и Firebase Function для оплаты.Мой текущий сценарий покупки предметов в моем приложении выглядит следующим образом.

  • Загрузка товара, который является документом пожарного депо с идентификатором и ценой
  • Пользователь нажимает «Купить сейчас за цена », вводит информацию о кредитной картеи подтверждает
  • Я получаю источник полосы с идентификатором, который, насколько мне известно, содержит информацию о кредитной карте
  • Я вызываю вызываемую функцию моего пожарного магазина и передаю stripeSourceId, itemID иitem.price
  • В своей функции я проверяю, аутентифицирован ли пользователь (из контекста), затем я взимаю плату с пользователя и сохраняю купленный предмет в пользовательских данных, чтобы позже отобразить предмет

Меня беспокоит вопрос 4. Возможно ли, чтобы пользователь каким-то образом взломал мой код переднего плана, чтобы после того, как полоса вернула sourceId, хакер вызвал функцию с другой ценой или другойitemId, чтобы получить другой предмет по другой цене?Если это так, как я могу решить эту проблему?

1 Ответ

1 голос
/ 08 апреля 2019

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

Решение состоит в том, чтобы только передать itemID от клиента, и заставить сервер искать цену, основанную на этом. Если злонамеренный пользователь передаст другой идентификатор элемента, он просто будет покупать другой элемент, но по той цене, которую вы указали.

Я настоятельно рекомендую посмотреть Пять советов по защите вашего приложения от Firebase Summit 2018 для получения дополнительных советов по обеспечению безопасности вашего приложения.

...