仍然不支持 HSTS 的网站列表?

信息安全 tls 网页浏览器 http 网络服务器 hsts
2021-08-20 20:50:47

我正在撰写一篇工作文章,并寻找仍然不支持 HSTS的前 500 个网站(按Alexa排名的列表这样的清单存在吗?我的 Google 查询没有得到任何有趣的结果。

除了逐个检查所有网站之外,任何人都可以提供一种方法来完成此操作吗?

2个回答

假设您已经有一个要检查的以换行符分隔的域名列表,请使用如下脚本,它将列表放入由第一个参数或 stdin 指定的文件中:

#!/bin/bash

while IFS= read -r s; do
    curl -sI "https://$s" | grep -qiE "^Strict-Transport-Security:" || echo "$s"
done < "${1:-/dev/stdin}"

exit 0

这将向标准输出输出一个域列表,这些域已启动,但不通过 HTTPS 发送标准 HSTS 标头。这并不意味着某些子域不使用 HSTS,也不意味着所有发送 HSTS 标头的站点都正确使用。检查 HSTS 在语法上是否有效将需要更复杂的正则表达式。

动态 HSTS

@forest 的 回答很好地涵盖了这一点,所以不要翻新地面,您需要连接到每个站点并检查返回的标头,如果您希望减少发回的数据量,可以使用 HEAD 来完成。

静态 HSTS

火狐

您将需要使用以下链接之一:

铬合金

Chrome 稍微难一些,首先你需要使用这个:

https://omahaproxy.appspot.com/all.json

找到给定版本的哈希,然后加载

https://chromium.googlesource.com/chromium/src/+/哈希/net/http/transport_security_state_static.json?format=TEXT

其中 hash 是您从上一步获得的哈希值。

您需要对结果进行 Base64 解码。