2017-07-25 79 views
0

如果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发现的唯一方式(不会将其他用户的电子邮件地址发送出去)。

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

+1

您需要加密保护您的API。除了提供他们的ID之外,他们还需要发送证明他们拥有账户密码的东西。 –

+0

@ElanHamburger我在哪里可以了解更多有关以这种方式保护我的API的信息?我将无法再使用Firebase身份验证吗? – hunterInt

+0

您可以使用Firebase身份验证。您可能会需要类似[基于令牌的身份验证](https://scotch.io/tutorials/the-ins-and-outs-of-token-based-authentication),我相信Firebase提供了API。 –

回答