2017-10-12 67 views
0

我寫了一個項目,它的接近它的生產階段,我意外地發現了一個bug在我的代碼csurf節點:多次使用,並沒有錯誤CSRF令牌

我的項目有一個頁面中,我有很多形式,我使用ajax發佈它們,我發現我沒有更新每個ajax請求的csrf標記,並且我的csurf-npm模塊沒有拋出任何錯誤。

我的項目是如此這麼大,我不能在這裏寫的,但我使用的唯一的地方是:

var csrfProtection = require("csurf")({cookie: true}); 

在我的路由器:

router.post(csrfProtection(),/*some BILIBILI function*/); 

和我」 m發送此頁到我發佈我的表格與阿賈克斯:

req.csrfToken(); 

你能幫我找出發生了什麼事。

謝謝

+0

我不認爲這是一個問題,令牌可以是唯一的會話。請參閱https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet#Synchronizer_.28CSRF.29_Tokens –

+0

@GabrielBleu謝謝你,我以爲這是一些如何重新創建每當你使用req.csrfToken()(即使你的會話沒有改變,它也會給出另一個csrfToken)我認爲它的實現方式是它有一個會話中保存的密鑰,它將用於解密該令牌並隨時重新創建它 –

+0

how我可以將這個問題標記爲已回答嗎? –

回答