如何检查我的 cookie 是否仅通过加密的 https 而不是 http 发送?

信息安全 tls 饼干 加密
2021-08-13 13:29:13

我读了一篇博客文章GitHub 迁移到 SSL,但仍然是 Firesheepable,声称即使该站点仅使用 https,cookie 也可以通过 http 未加密发送。他们写道,cookie 应该标有“安全标志”,但我不知道那个标志是什么样子的。

如何在仅使用 https 的网站上检查我的 cookie 仅通过加密的 https 而不是未加密的 http 发送?

3个回答

cookie 安全标志如下所示:

安全的;

而已。
这应该出现在 Http 标头的末尾:

设置 Cookie:mycookie=somevalue;路径=/安全站点/;过期=2010 年 12 月 12 日;安全的; http仅;

当然,要检查它,只需插入任何代理或嗅探器(我使用优秀的Fiddler)并观看......

*奖励:我还在那里添加了 httpOnly 属性,以防止来自 Javascript 空间的 cookie 访问,例如通过 XSS。

您可以使用 Firebug 之类的工具(Firefox 的扩展:http: //getfirebug.com/)进行检查。cookie 将显示为“安全”。

此外,如果您使用的是 Firefox,您可以查看“删除个人 Cookie”窗口以确定。

从开发的角度来看,“安全”cookie 与常规 cookie 相同,但其中有一个额外的参数。例如

SessionId=blah; path=/; secure; HttpOnly

您的开发框架有望支持轻松添加此功能 - 如果您需要帮助,请告诉我们您使用的平台。

当您在那里时,如果您没有在 Javascript 中操作 cookie,我建议您也添加 HttpOnly 标志,它将为 cookie 提供额外的保护,使其免受某些 XSS 攻击。

您也可以使用 google chrome 的插件来实现这一点,一个非常好的是Advance REST Client

示例输出如下所示:

Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Content-Type: application/json
Content-Length: 104
X-Content-Type-Options: nosniff
Server: WEBrick/1.3.1 (Ruby/2.0.0/2015-12-16)
Date: Thu, 25 Aug 2016 07:15:57 GMT
Set-Cookie: your.cookie.name=some-hash-uuid-here; domain=your-backend-hostname.com; path=/; expires=Sat, 24 Sep 2016 07:15:57 -0000; HttpOnly; secure
Via: 1.1 vegur

正如您在“ Set-Cookie ”属性值的末尾看到的那样,您将看到“安全”一词在前面的答案中多次评论,但还要注意有一个名为“ Strict-Transport-Security ”的属性是值得一提。