如果user1同意user2成功完成任务,我正在编写一个应用程序,该应用程序将user1的钱给user2。ExpressJS阻止我的应用被黑客攻击
我对如何解决这个问题有几点看法,但我担心安全问题。我很可能不太了解这个问题,并且我希望得到建议。
一种方法是侦听user1是否满意user2的作业完成。
例快递代码数据保存到火力地堡DB:
app.post('/general/something', function(serverReq, serverRes) {
var data = serverReq.body;
var ref = db.ref("stuff/"+data.userOneId).update({
isHappy: true
});
serverRes.send("Posted");
});
然后,如果用户是在DB高兴,我可以检查,然后发送user2的user1的钱。
但是,似乎任何人(特别是用户2)都可以在“/ general/something”将POST DATA(user1的ID)发送到我的服务器并获得userone的钱。
我们可以假设user2知道user1的Firebase用户ID。这是因为我需要用户能够互相引用,并且用户ID是我用Firebase发现的唯一方式(不会将其他用户的电子邮件地址发送出去)。
完成此任务的最佳方式是什么?
您需要加密保护您的API。除了提供他们的ID之外,他们还需要发送证明他们拥有账户密码的东西。 –
@ElanHamburger我在哪里可以了解更多有关以这种方式保护我的API的信息?我将无法再使用Firebase身份验证吗? – hunterInt
您可以使用Firebase身份验证。您可能会需要类似[基于令牌的身份验证](https://scotch.io/tutorials/the-ins-and-outs-of-token-based-authentication),我相信Firebase提供了API。 –