【问题标题】:How to protect Javascript changes in client side如何保护客户端的Javascript更改
【发布时间】:2020-05-14 18:53:50
【问题描述】:

我正在使用 Firestore 数据库开发应用程序,但我面临某些安全问题。例如,应用程序在每个表单提交时添加创建和写入日期,并检查写入日期是否迟到用户必须支付罚款。由于 javascript 代码是可见的并且可以在客户端更改,因此用户可以修改写入日期并绕过惩罚。

为了解决这个问题,我首先有两个选择,我可以使用服务器端,这会花费我不想要的额外服务器硬件。第二种选择是使用云功能,这比升级我的服务器硬件成本高得多。有没有更好的办法来处理这个问题?

【问题讨论】:

  • “使用云功能成本高得多” -> 你看过pricing for Cloud Functions吗?每月有 125,000 次调用的慷慨免费层级。

标签: javascript database firebase firebase-realtime-database google-cloud-firestore


【解决方案1】:

没有。

如果您想以用户无法干预的方式生成数据,那么您必须在您控制的计算机上生成它(无论是传统托管还是分布式云托管),而不是在用户控制的计算机。

【讨论】:

    【解决方案2】:

    确实,为了让您完全控制系统,它需要以一种不会为用户提供“权力”的方式进行编程和开发 - 例如 JavaScript。

    正如您所提到的,使用 Cloud Functions 将是您的最佳选择。我建议你看看Pricing。有很多很好的选择,包括免费的。如果您刚刚启动系统/应用程序,使用免费层可能是您的最佳选择。 :)

    【讨论】:

      【解决方案3】:

      您可能想查看 Firebase 的 server-side security rules 的文档。这些规则可用于验证直接从客户端进行的读取和写入操作,并且在许多情况下可以覆盖直接从客户端访问的大部分安全需求。

      如果在安全规则中执行某些检查被证明是不可能或不可行的,Cloud Functions 是一个很好的第二层。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-29
        • 2013-11-29
        • 2012-06-19
        • 1970-01-01
        • 2015-10-29
        • 2012-04-24
        相关资源
        最近更新 更多