Я знаю, что домен верхнего уровня .dev
требует, чтобы все сайты поддерживали только зашифрованные HTTPS-соединения, запрещая любые HTTP-соединения .
Существуют ли другие такие TLD?
Прямой ответ на этот вопрос в конечном итоге устареет, если больше доменов верхнего уровня начнут применять HTTPS с использованием HTTP Strict Transport Security (HSTS, RFC 6797 ). Технически это политика HSTS для TLD, представленного в список предварительной загрузки. Он начался с новых TLD Google ,
Список предварительной загрузки HSTS может содержать отдельные домены или субдомены и даже домены верхнего уровня (TLD), которые добавляются через HSTS веб-сайт .TLD - это последняя часть имени домена, например,
.com
,.net
или.org
. Google управляет 45 доменами верхнего уровня , в том числе.how
и.soy
. В 2015 году мы создали первый безопасный TLD, когда добавили.foo
и.dev
.
и даже были предварительные мысли о возможности защиты всего .gov
в будущем:
Уменьшение масштаба еще больше: технически возможно предварительно загрузить HSTS { {1}} для всего домена верхнего уровня (например, «
.gov
»), как Google сначала сделал с.gov
сможет туда попасть.
Чтобы узнать текущую ситуацию, необходимо обратиться к списку предзагруженных файлов Chromium HSTS .
Предварительно загруженный список также доступен на зеркале Chromium GitHub ; особенно необработанная версия лучше всего подходит для curl
или wget
. Список представляет собой нестандартный JSON со строками комментариев. Его можно проанализировать с помощью jq
после удаления комментариев, например, sed
.
Здесь jq
дает все доменные имена в предварительно загруженном списке, а grep
сокращает его до TLD :
cat transport_security_state_static.json \
| sed 's/^\s*\/\/.*//' \
| sed '/^$/d' \
| jq -r '.entries[]|select(.include_subdomains==true)|"\(.name)"' \
| grep -P "^\.?[a-z]*\.?$"
Для поиска публичные суффиксы вместо TLD:
cat transport_security_state_static.json \
| sed 's/^\s*\/\/.*//' \
| sed '/^$/d' \
| jq '.entries[]' \
| jq 'select((.policy=="public-suffix") and (.include_subdomains==true))' \
| jq -r '"\(.name)"'