【发布时间】: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