Http
在 HTTP 通信的情況下,使用 cookie 和使用普通標頭有什麼區別嗎?
我有一個由自定義軟體和 HTTP 伺服器組成的系統。該軟體將發送一些帶有一些標頭的請求,HTTP 伺服器將發送迴響應。
現在我有一些伺服器將發送給軟體的自定義身份驗證相關標頭,軟體將保留這些標頭並在每個額外的請求中將它們發送回以繞過身份驗證過程。
根據我的理解,這應該使用 cookie 來完成。然而,在定制軟體開發中,添加普通標頭很容易,而添加 cookie 則更難實現,並且基於測試,使用普通標頭在功能上也能正常工作。
我想知道的是,是否有任何安全原因和/或其他原因應該使用 cookie 而不是普通的 HTTP 自定義標頭?
這更像是一個軟體開發問題,可能會在 StackOverflow、軟體工程或安全 SE 站點上吸引到更好的答案。
但最簡單的答案是標頭由客戶端設置並且通常是靜態的,例如在每個請求中包含特定的 API 令牌。
會話和 cookie 由伺服器設置。後者為伺服器提供了更多的控制權,並且可以說是更好的安全性。伺服器可以在不使您進行身份驗證的實際憑據失效的情況下使它們失效,從而使您重新進行身份驗證(例如總是在 X 小時或一些空閒時間之後)或更改它們的值以防止會話劫持或重放攻擊。