【问题标题】:Possible to change Firebase callable Functions data on Front End?可以在前端更改 Firebase 可调用函数数据吗?
【发布时间】:2019-04-09 01:18:12
【问题描述】:

我正在使用 Stripe 和 Firebase 功能进行付款。我当前在我的应用中购买商品的场景如下所示。

  • 加载项目,这是一个带有 Id 和价格的 Firestore 文档
  • 用户点击“立即购买价格”,输入信用卡信息并确认
  • 我得到一个带有 id 的条带源,据我所知,它包含有关信用卡的信息
  • 我调用我的 firestore 可调用函数并传递 stripeSourceIditemIDitem.price
  • 在我的函数中,我检查用户(从上下文)是否经过身份验证,然后向用户收费并将购买的商品保存在用户数据中,以便稍后取消显示该商品

我担心的是第 4 点。用户是否有可能以某种方式破解我的前端代码,以便在条带返回 sourceId 后,黑客会以不同的价格或不同的 itemId 调用该函数以不同的价格获得不同的商品?如果是这样,我该如何解决这个问题?

【问题讨论】:

    标签: firebase google-cloud-functions stripe-payments


    【解决方案1】:

    您从客户端传递到服务器的任何内容都可能被恶意用户更改。这就是为什么您永远不应该信任任何直接来自服务器的数据。

    解决方案是只从客户端传递 itemID,并让服务器根据它查找价格。如果恶意用户传递了不同的商品 ID,他们将只是购买不同的商品,但仍以您设置的价格购买。

    我强烈建议您观看 2018 年 Firebase 峰会上的 Five tips to secure your app,了解有关保护您的应用的更多提示。

    【讨论】:

      猜你喜欢
      • 2022-07-06
      • 2021-03-12
      • 2017-10-14
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      相关资源
      最近更新 更多