4

我正在详细研究 Firefox 和 Chrome 如何实现 HSTS(HTTP 严格传输安全)。

事实证明,他们有一个预定义的列表,其中包含一些已经实施 HSTS 的站点。这可以在这里和/或这里看到。而且这些列表似乎以某种方式与源代码本身相关联,这在某种程度上是有意义的……但是 Firefox 和 Chrome 如何处理我自己的 HSTS 标头?他们如何以及在哪里存储我的 URL、我的最大年龄以及我是否包含子域?我无法在 about:config 或类似...中找到它。

所以也许有人比我更了解这个问题,我只是好奇(:谢谢!

4

2 回答 2

4

请参阅http://hg.mozilla.org/mozilla-central/file/20bbf73921f4/netwerk/protocol/http/nsHttpChannel.cpp#l1072然后http://hg.mozilla.org/mozilla-central/file/20bbf73921f4/ security/manager/boot/src/nsStrictTransportSecurityService.cpp#l249调用http://hg.mozilla.org/mozilla-central/file/20bbf73921f4/security/manager/boot/src/nsStrictTransportSecurityService.cpp#l147

所以数据最终存储在权限管理器中,这是每个主机信息存储在 Firefox 中的正常位置。我认为权限管理器将其状态存储在 中permissions.sqlite

于 2013-01-31T06:11:23.903 回答
1

想要强制执行的站点会HTTP Strict Transport Security (HSTS)发送一个标头作为响应 -Strict-Transport-Security: max-age=31536000 最长期限是它到期的时间。它在每个请求上发送,以便每次请求时它都会更新到更多时间。

浏览器(我只尝试过 Firefox)与它一起存储这些数据,并且每次访问该站点时都会使用它。即使对于隐身模式也是如此。如果您之前曾以非隐身模式访问过该站点,那么即使您现在尝试以隐身模式打开该站点,该站点的详细信息也会被保存和使用。

对于 firefox,此数据存储SiteSecurityServiceState.txt在您的 firefox 配置文件夹中名为的文件中。您可以about:support在浏览器中输入,然后选择“在文件夹中显示”以打开您的个人资料文件夹,您可以在其中找到该文件。

我不确定预定义的站点,但上面是为 firefox 更新普通站点 HSTS 详细信息的文件。

更多详细信息 -了解 HTTP 严格传输安全 (HSTS)

PS:以上链接指向我的个人博客,其中包含有关 HSTS 的更多详细信息。

于 2017-03-17T10:29:11.600 回答