2017-07-25 82 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。 –

回答