【问题标题】:ExpressJS prevent my app from being hackedExpressJS 防止我的​​应用程序被黑客入侵
【发布时间】:2017-07-25 16:47:04
【问题描述】:

如果 user1 同意 user2 成功完成任务,我正在编写一个应用程序,它将把 user1 的钱给 user2。

我对如何解决这个问题有几个想法,但我担心安全问题。很可能我没有像我应该的那样理解这个主题,并希望得到建议。

一种方法是倾听 user1 是否对 user2 的工作完成感到满意。

将数据保存到 Firebase 数据库的示例 Express 代码:

app.post('/general/something', function(serverReq, serverRes) {
    var data = serverReq.body;

    var ref = db.ref("stuff/"+data.userOneId).update({
        isHappy: true
    });
    serverRes.send("Posted");

});

然后我可以检查用户在数据库中是否满意,然后发送 user2 user1 的钱。

但是,似乎任何人(尤其是 user2)都可以在“/general/something”处将数据(user1 的 ID)发布到我的服务器并接收 userone 的钱。

我们可以假设 user2 知道 user1 的 Firebase 用户 ID。这是因为我需要用户能够相互引用,而用户 ID 是我在 Firebase 中找到的唯一方法(不提供其他用户的电子邮件地址)。

完成这项任务的最佳方式是什么?

【问题讨论】:

  • 您需要加密保护您的 API。除了提供他们的 ID 外,他们还需要发送一些东西来证明他们拥有该帐户的密码。
  • @ElanHamburger 在哪里可以了解有关以这种方式保护我的 API 的更多信息?我不能再使用 Firebase 身份验证了吗?
  • 您可以使用 Firebase 身份验证。您可能会想要像 token-based authentication 这样的东西,我相信 Firebase 为其提供了一个 API。

标签: node.js security express firebase firebase-realtime-database


【解决方案1】:

感谢@ElanHamburger,我能够使用带有 Firebase 的令牌 (https://firebase.google.com/docs/auth/admin/verify-id-tokens) 解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2021-03-18
    • 2015-10-08
    • 2011-06-13
    相关资源
    最近更新 更多