在HTTP通信的情况下,使用cookie和使用普通的header有什么区别吗?

在HTTP通信的情况下,使用cookie和使用普通的header有什么区别吗?

我有一个由自定义软件和 HTTP 服务器组成的系统。该软件将发送一些带有一些标头的请求,HTTP 服务器将发回响应。

现在我有一些自定义的身份验证相关的标头,服务器将将其发送给软件,软件将保留这些标头并在每个附加请求中将它们发送回去以绕过身份验证过程。

根据我的理解,这应该使用 cookie 来实现。然而,在定制软件开发中,添加普通标头很容易,而添加 cookie 则更难实现,并且根据测试,使用普通标头在功能上也同样有效。

我想知道的是,是否有任何安全原因和/或其他原因需要使用 cookie 而不是普通的 HTTP 自定义标头?

答案1

这更像是一个软件开发问题,并且可能会在 StackOverflow、软件工程或可能是安全 SE 网站上找到更好的答案。

但最简单的答案是,标头由客户端设置,并且通常是静态的,例如在每个请求中都包含一个特定的 API 令牌。

会话和 cookie 由服务器设置。后者为服务器提供了更多的控制权,并且可以说是更好的安全性。服务器可以使它们过期,但不会使您用于身份验证的实际凭据无效,让您重新进行身份验证(例如,总是在 X 小时或某个空闲时间之后)或更改它们的值以防止会话劫持或重放攻击。

相关内容