如何添加 security.txt 文件
简短回答:在 /.well-known/security.txt 创建一个纯文本文件,至少包含一行 Contact:(邮箱或网页表单)和一个不超过一年后的 Expires: 日期,并通过 HTTPS 提供。它告诉在你网站上发现安全问题的人如何联系你。
快速步骤
- 编写文件. 添加 Contact 和 Expires,以及可选的 Preferred-Languages、Canonical 和 Policy 行。
- 发布文件. 把它放在你的 HTTPS 网站的 /.well-known/security.txt。
- 检查文件. 用 curl 获取它,确认是纯文本。
- 更新文件. 在 Expires 日期到来之前更新它。
代码和配置保持英文。
1. 编写文件
Contact: mailto:security@yourdomain.com
Expires: 2027-10-31T00:00:00Z
Preferred-Languages: en
Canonical: https://yourdomain.com/.well-known/security.txt
Policy: https://yourdomain.com/securityContact和Expires是必填项。可以写多行 Contact。Expires使用 ISO 8601 日期格式。RFC 9116 建议设在一年以内。Policy链接到你的负责任披露页面(如果有)。
2. 发布文件
把它上传到网站根目录下的 .well-known/security.txt(如有需要,先创建 .well-known 文件夹)。在 WordPress 上,可以用主机商的文件管理器或 SFTP 上传。使用 nginx 时,也可以指向其他位置的文件:
location = /.well-known/security.txt {
alias /etc/nginx/security.txt;
default_type text/plain;
}3. 检查文件
curl -si https://yourdomain.com/.well-known/security.txt | head -n 12你应该看到状态码 200 和 Content-Type: text/plain。可以参考 HackGrade 自己的 security.txt。
4. 保持有效
过期的文件应被视为已失效,所以请在 Expires 日期前一个月设置日历提醒。Contact 请使用共享邮箱,而不是个人地址。
常见问题
法律要求必须有 security.txt 吗?
不要求。它是一个自愿性标准(RFC 9116),但能大大提高问题被报告给你、而不是被公开的可能性。
security.txt 会招来攻击者吗?
不会。它只包含联系方式。请使用共享地址,而不是个人地址。
还需要在 /security.txt 放一份副本吗?
标准位置是 /.well-known/security.txt。从 /security.txt 重定向过去是可选的。