【问题标题】:How does Firebase prevent other website or hackers from posting to my database? [closed]Firebase 如何防止其他网站或黑客向我的数据库发帖? [关闭]
【发布时间】:2020-02-21 06:21:57
【问题描述】:

如果我有一个 web 应用(网站)并且我正在从用户的浏览器向 Firebase 发布数据,它如何防止其他网站或黑客向我的数据库发布数据?

如果有 API 密钥或令牌,则可以从用户开发控制台的流量中查看。是否可以通过用户所在的网站来识别,但即便如此,黑客还是可以在HTTP流量数据中欺骗网站。

如果没有后端代码,如果我为用户发布 10 个游戏币,如果没有服务器代码来控制,我如何阻止用户将 100 个游戏币发布到同一个 Firebase 数据库?

(有a post about other hackers hacking it will be difficult,但是黑客入侵了自己的帐户呢?)

【问题讨论】:

    标签: firebase


    【解决方案1】:

    如果我有一个 web 应用程序(网站)并且我正在发布来自用户的数据 浏览器到 Firebase,它如何防止其他一些网站或黑客 从发布到我的数据库?

    默认情况下它并没有真正“做”任何事情。你必须做点什么。

    如果有 API 密钥或令牌,则可以从来自的流量中查看 用户的开发控制台。如果是通过哪个网站识别用户 上,黑客在HTTP流量数据中欺骗了一个网站。

    客户端应用程序和 Firestore 之间发送的所有流量都经过加密,通常通过 HTTPS 或其他加密套接字进行,因此任何只能看到客户端和服务器之间的加密字节流的人都看不到它。

    如果没有后台代码,如果我为用户发布 10 个游戏币,我怎么能 阻止用户向同一个 Firebase 发布 100 个游戏币 如果没有服务器代码来控制数据库?

    您的安全规则会阻止这种情况发生,但安全规则可能不够强大,无法阻止不需要的更改。所以你可能需要一个后端。您应该始终假设客户端代码已被泄露,因为它运行在您无法控制的硬件上。

    (有一篇关于其他黑客入侵的帖子会很困难,但是 黑客入侵自己的帐户会怎样?)

    当您使用安全规则(或任何机制)来控制对单个经过身份验证的用户的访问时,您应该假设用户不受应用程序中的逻辑的约束。有人可以使用他们自己的身份验证令牌并在调用 Firebase 服务时使用它来执行他们允许对该帐户执行的任何操作。这与任何其他权限系统确实没有什么不同。

    【讨论】:

    • 规则是什么?比如“每天只能加10个游戏币?”如果用户A完成一个任务,得到10个游戏币,在开发控制台看到XHR日志中的所有数据,传给朋友,朋友修改了userid,把XHR发送出去,他会也得到10个硬币? (XHR 无需 https 加密即可查看)
    • 您根据自己的要求编写规则。搜索您正在使用的数据库产品的安全规则。您应该使用 Firbase 身份验证来确保个人用户只能进行他们被授权进行的更改。
    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多