为注册商、托管服务商和 CDN 生成滥用举报,提供邮件和 JSON 两种形式。
security.txt 生成器
该工具本身是英文的;本页面将用您的语言对它进行说明。
使用 security.txt 生成器
功能介绍
生成一个 security.txt 文件,让安全研究人员和举报仿冒你品牌的钓鱼网站的人知道如何联系你。将结果保存为 /.well-known/security.txt。
它完全在您的浏览器中运行:您输入的任何内容都不会被上传。
如何使用security.txt 生成器
- 输入联系方式. 在“联系方式”中输入联系安全团队的方式,每行一项:mailto:security@example.com、https://格式的报告表单地址,或tel:号码。如果只输入电子邮件地址,系统会自动添加mailto:前缀。
- 设置到期日期. 在 Expires 中选择日期。默认是今天起一年后;RFC 9116 建议少于一年,因此请选择更早的日期。
- 添加可选字段. 如有需要,填写 Preferred-Languages(默认为 en)、Canonical、Policy、Encryption、Acknowledgments 和 Hiring。空字段不会写入文件。
- 生成并复制. 按 Generate(生成),并在输出框中查看结果。请再检查一遍每个地址,因为工具会照原样复制它们,然后按 Copy(复制)。
- 发布并续期. 将文本保存为网站上通过 HTTPS 提供的 /.well-known/security.txt,如有需要可用 gpg --clearsign 签名,并记下在到期前续期的日期。
示例
最简文件
mailto:security@example.comContact: mailto:security@example.com
Expires: 2027-10-20T23:59:59.000Z
Preferred-Languages: en生成“Contact: mailto:security@example.com”、“Expires”字段的到期时间设定为一年后的23:59:59Z,以及“Preferred-Languages: en”——这两个必填字段外加一个语言提示,并附有提醒:RFC 9116建议“Expires”日期应设定为一年以内。
检查内容
| 信号 | 其含义 |
|---|---|
| Contact: | 每个联系人占一行,按您输入的顺序排列。根据 RFC 9116 的要求,每行必须是 mailto:、https:// 或 tel: 格式的 URI;http:// 以及格式不正确的值会引发错误,而非生成文件。 |
| Expires: | 所选日期的 23:59:59 UTC,带毫秒书写,例如 2027-03-31T23:59:59.000Z。如果清空日期字段,Generate 将不再生成新文件。 |
| Preferred-Languages: | 默认为 en。请使用逗号分隔的语言代码,例如 en, de;或清空该字段,以省略这一行。 |
| Canonical: | 该文件所在位置的完整 https:// 地址,以便识别从其他地方提供的副本。 |
| Encryption: | 指向你的 OpenPGP 公钥的链接,便于举报人加密敏感细节。 |
| Policy、Acknowledgments、Hiring | 分别指向你的漏洞披露政策、感谢举报人的页面以及安全岗位招聘的链接。全部可选,工具不会检查链接是否有效。 |
| Contact 中使用角色地址 | 请使用团队共同关注的地址或表单,例如你域名下的 security@,而不是某个人的邮箱,这样即使人员变动,举报仍能送达。 |
| Error: Contact is required(错误:Contact 为必填项) | 当“联系人”字段为空时显示。出现任何错误时,该内容将被替换,并附有提示说明:在修复字段之前,系统不会生成任何内容。 |
更多示例
带语言和策略的网页表单
Contact https://example.org/report-security, Expires 2027-03-31, Preferred-Languages en, de, Canonical https://example.org/.well-known/security.txt, Policy https://example.org/security-policy按以下顺序生成五行:Contact: https://example.org/report-security、Expires: 2027-03-31T23:59:59.000Z、Preferred-Languages: en, de、Canonical: https://example.org/.well-known/security.txt、Policy: https://example.org/security-policy。
带密钥、不含语言的电子邮件联系方式
Contact mailto:abuse@example.net, Expires 2027-06-30, Preferred-Languages cleared, Encryption https://example.net/pgp-key.txt三行:Contact: mailto:abuse@example.net、Expires: 2027-06-30T23:59:59.000Z 和 Encryption: https://example.net/pgp-key.txt。
Contact 留空
All fields filled except Contact错误:必须填写“联系人”字段,且提示未生成任何内容。其他字段的值保持不变,请填写“联系人”并再次点击“生成”。
常见问题解答
哪些字段是必填的?
RFC 9116 要求至少包含一个 Contact 字段和恰好一个 Expires 字段;其余字段均为可选。 每行“Contact”必须是 mailto:、https:// 或 tel: URI(若为纯电子邮件地址,则自动添加 mailto: 前缀);“Expires”必须为未来日期;若其中任意一项缺失或无效,Generate 函数将显示错误信息而非生成文件。
Expires 应该设为什么时候?
日期默认设置为从今天起一年后,而 RFC 9116 建议将期限设为不到一年,因此请选择一个更早的日期以符合该规范;当日期超过一年后时,页面会提醒您。请在该日期之前更新该文件,因为 RFC 规定,过期的 security.txt 文件应被视为过时。
它会上传或签名任何内容吗?
不会。文件在你的浏览器中组装,不会向任何地方发送数据。文件没有签名;RFC 9116 建议使用 OpenPGP 明文签名,你可以在发布前用 gpg --clearsign 添加。
可以列出多个联系方式吗?
是的。RFC 9116 允许包含多行“联系人”信息,这些信息将按优先级顺序读取。请在“联系人”字段中每行输入一位联系人;重复的联系人信息仅记录一次。
文件具体应放在哪里?
放在 https://your-domain/.well-known/security.txt,通过 HTTPS 以纯文本形式提供。在 /security.txt 放置副本或重定向是可选的。
一个文件能覆盖我的子域名吗?
不能。RFC 9116 规定,security.txt 只适用于获取它的那个主机,不适用于其子域名或上级域名。请在人们可能查找的每个主机上都发布一份副本,例如 www 和 shop。
security.txt 如何帮助应对仿冒我品牌的钓鱼?
发现仿冒网站或以你名义发出的虚假邮件的人,往往想提醒你。一行有效的 Contact 能让这类举报送达你的安全团队,而不是进入普通客服队列,这样你就能更快地对仿冒域名采取行动。