Зачем нужен security.txt
Когда кто-то находит уязвимость на вашем сайте, самое трудное часто — понять, кому о ней сообщить. security.txt (RFC 9116) — короткий текстовый файл по адресу /.well-known/security.txt, который отвечает на этот вопрос: строка Contact с адресом электронной почты или страницей для сообщений и строка Expires, которая говорит, до какого момента на эти сведения можно полагаться. Обе обязательны. Необязательные поля добавляют ключ шифрования, политику раскрытия, предпочтительные языки, канонический URL файла, ссылку на страницу благодарностей и вакансии в области безопасности.
Что проверяет этот инструмент
Он запрашивает https://<domain>/.well-known/security.txt, а если там файла нет — прежнее расположение /security.txt. Он проходит несколько редиректов и сообщает итоговый URL. Затем разбирает поля и отмечает то, чего требует RFC 9116: отсутствие Contact или Expires, больше одного Expires, дату не в требуемом формате, дату в прошлом, дату дальше чем через год, файл, отданный по обычному HTTP или с недействительным сертификатом, ссылки с http:, поле Canonical, которое не совпадает с URL, по которому файл найден, и наличие у файла подписи OpenPGP в формате cleartext.
Многие сайты на любой неизвестный путь отвечают главной страницей со статусом 200. Поэтому ответ в виде HTML считается «не найдено», а не сломанным security.txt. А если запрос не удался, результат — «не удалось проверить»: инструмент никогда не сообщает об отсутствии файла из-за тайм-аута.
Как сохранить файл полезным
Истёкший файл — самая частая находка, потому что поле Expires обязательно и о нём легко забыть. Ставьте дату меньше чем на год вперёд и внесите продление в тот же календарь, где у вас сертификаты и домены. Укажите адрес, письма с которого попадают к людям, способным действовать, а не личный ящик, и подпишите файл, если хотите, чтобы сообщающие могли его проверить.