2014-02-07 37 views
2

我有一套受CSRF保護的REST服務,使用類似於OWASP的Synchronizer令牌模式(https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet)。 * REST是使用Java和JAX-RS *安全使用Spring Security的CSRF令牌 * HTTP PUT,POST執行和DELETE保護將REST服務的CSRF令牌包含爲Http響應頭是否安全?

在我的web應用程序的啓動實施,我寫在正確的CSRF令牌HTML頁面,然後應用程序在請求標題中爲每個請求包含標記爲「X-CSRF-HEADER」。

我也有客戶端直接訪問URL(例如curl命令行和其他)。

備用客戶端需要以某種方式獲得CSRF令牌(在認證之後)。

將令牌作爲GET請求的HTTP響應頭包含在內是否安全?如果是這樣,那麼我可以將它包含在響應頭中,客戶端可以將其讀出幷包含在將來的請求頭中。

安全嗎?

+1

爲什麼它比在響應主體中發送它更安全? –

+0

@JBNizet我不認爲它有什麼不同......但我害怕我不知道的東西!也許有一個HTTP頭部攻擊的地方。 –

+0

最後,一切都在線上。如果使用SSL,則所有內容均已加密。如果不使用,則不加密。 –

回答

4

將CSRF令牌包含在響應頭中通常被認爲是安全的。就像請求的主體一樣,響應標頭在SSL響應中被加密,並且不能跨域訪問。 CSRF令牌默認情況下未呈現給響應的原因是爲了確保我們延遲創建會話直到有必要。有關詳細信息,請參閱SEC-2276

相關問題