2016-06-07 34 views
3

我有點驚訝,這個問題之前沒有問過,但目前正在使用服務器端渲染的項目中,我們需要在初始加載時調用我們的驗證API。「Cookie」字段與http標題有什麼不同

爲了在我們需要從服務器端發送cookie要做到這一點時,我只需設置一個頭的Cookie,

fetch(`${ API_SERVER }`, { 
    headers: { 
     Accept: 'application/json', 
     Cookie: 'User-Session-Token=' + cookie, 
    }, 
    credentials: 'include', 
} 

,一切工作正常通過身份驗證的方式來獲取數據。只是想檢查是否有任何與安全相關的問題,因爲這不是發送它的瀏覽器,而是我們手動完成的。

+0

你如何得到正確的cookie值?你還模擬登錄表單嗎? – Thilo

+0

如果API旨在被非瀏覽器客戶端使用,那麼允許其他認證方法(如訪問令牌)可能會更好。 – Thilo

+0

我們使用cors,因此它只能被我們的渲染服務器訪問。在初始渲染的請求中,cookie的值基本上是從瀏覽器傳遞到服務器的。但是我想要問的是,如果一個普通的cookie字段作爲頭部會導致任何安全漏洞,或者它在概念上是錯誤的。 – ralzaul

回答

-2

Cookie首先由服務器設置,然後瀏覽器將其發送回每個請求到該域。 如果cookie不打算被任何腳本使用,您可以將其設置爲「HttpOnly」cookie,這將保護您免受跨站點腳本攻擊(XSS)的攻擊。

Set-Cookie: <name>=<value>[; <Max-Age>=<age>] 
[; expires=<date>][; domain=<domain_name>] 
[; path=<some_path>][; secure][; HttpOnly] 

然而,該cookie仍然易受跨站點跟蹤(XST)和跨站請求僞造(XSRF)攻擊。

當用於安全聲明時,Cookie被json網絡令牌取代。

「JSON Web令牌是一種開放的行業標準RFC 7519方法,用於在兩方之間安全地聲明索賠。」

參見:

https://jwt.io/

相關問題