security.txt 生成器 — 创建并校验 RFC 9116 文件

创建包含联系方式、过期时间、加密和政策字段的有效 security.txt(RFC 9116),校验现有文件,并下载后放到 /.well-known/ 下。

电子邮件地址、https:// 报告表单或电话号码。单纯的邮箱地址会自动加上 mailto:。首选联系方式请放在第一位。

RFC 3339 日期时间,距今少于一年。请在日历中设置提醒,在过期前续期。

你的 PGP 公钥的 URL(https://、dns: 或 openpgp4fpr:),而不是密钥本身。

以逗号分隔的语言标签,例如 en, fr, pt-BR。

此文件所在的 https:// URL。如果要签名,实际上就是必填项。

你的漏洞披露政策:范围、安全港条款、你的响应方式。

感谢报告问题的安全研究人员的页面(名人堂)。

安全相关的职位空缺。

适用于发布机器可读安全公告的厂商:provider-metadata.json 的 URL。

有效:所有必填字段齐全,且每个值都符合 RFC 9116。

security.txt
…
放在哪里
  • 通过 HTTPS 在 https://yourdomain.com/.well-known/security.txt 提供该文件,类型为 text/plain; charset=utf-8。也可以将 /security.txt 重定向到它。
  • Next.js、Astro、Vite 和大多数静态托管:保存为 public/.well-known/security.txt。WordPress、Apache 或 nginx:在网站根目录中创建 .well-known 文件夹。
  • 每个提供独立网站的子域名都应有自己的文件(或在注释中引导访问者查看主文件)。
  • 可选:用 gpg --clearsign security.txt 签名并发布签名后的输出;请包含 Canonical,使签名覆盖文件位置。

完全在浏览器中运行。你输入的任何内容都不会发送给我们或被存储。 浏览全部免费工具.

发现问题,或者觉得哪里可以更好?每条消息我们都会阅读,并尽快修复。

这款免费的 security.txt 生成器用于创建一个由 RFC 9116 标准化的小文本文件,告诉安全研究人员如何报告你网站上的漏洞。填写联系方式、过期日期,并可选填加密密钥、漏洞披露政策、致谢页面、首选语言和规范网址;文件会在你输入时按 RFC 实时校验,并以 security.txt 下载,直接上传到 /.well-known/security.txt 即可。

没有这个文件,发现你网站漏洞的人只能去猜该发到哪里,结果报告要么落进客服邮箱、发到社交媒体,要么干脆无处可去。这个文件只需五分钟就能搞定,许多安全扫描器和漏洞赏金研究人员都会检查它。第二个选项卡可以校验你已经发布的文件。本工具不会为文件签名(请使用 gpg),也不会抓取你线上的文件,因为页面不发起任何网络请求。

使用方法

  1. 至少填写一个 Contact:安全邮箱、报告表单网址或电话号码。把首选的放在最前面。
  2. 用按钮设置 Expires(六个月是不错的默认值),或手动输入 RFC 3339 格式的日期时间。
  3. 添加你已有的可选字段:PGP 密钥的网址、漏洞披露政策、致谢页面、你能阅读的语言,以及文件的规范网址。
  4. 修正所有标红的问题;琥珀色的项目是建议。
  5. 下载 security.txt,发布到 https://yourdomain.com/.well-known/security.txt,并以 text/plain 类型提供。设置一个提醒,按时更新 Expires。

常见问题

什么是 security.txt?

它是位于 /.well-known/security.txt 的纯文本文件,列出如何报告某个网站或产品的安全漏洞。IETF 于 2022 年 4 月将其发布为 RFC 9116。只有两个字段是必填的:Contact 和 Expires;其余字段(Encryption、Acknowledgments、Preferred-Languages、Canonical、Policy、Hiring)均为可选。

security.txt 文件应该放在哪里?

放在 https://yourdomain.com/.well-known/security.txt,通过 HTTPS 提供,内容类型为 text/plain; charset=utf-8。一些工具仍会读取根目录下的旧位置 /security.txt;你可以在那里放一份副本或设置重定向。在 Next.js、Astro、Vite 和大多数静态托管中,把文件放在 public/.well-known/ 下。每个作为独立网站的主机名都应有自己的文件。

为什么 Expires 字段是必填的?

为了让过时的联系信息不会被永远信任。RFC 9116 规定 Expires 为必填,并建议设为不到一年之后的日期;过期之后,研究人员和扫描器应将该文件视为已过时。设为六个月并在日历中设置续期提醒是比较实用的节奏;日期已过或超过一年时,生成器会发出警告。

应该给 security.txt 签名吗?

签名是可选的,但推荐这样做。用一个公开了公钥的密钥运行 gpg --clearsign security.txt(Encryption 字段可以指向该公钥),然后上传签名后的输出。如果签名,请加上 Canonical 字段,这样从某个网址获取的签名副本就无法被冒充为另一个网址上的有效文件。

可以用漏洞赏金平台的链接作为联系方式吗?

可以。Contact 接受任何 https:// URI,所以 HackerOne、Bugcrowd、Intigriti 或 YesWeHack 的项目页面,或你自己的报告表单都是有效的。许多组织会按优先顺序同时列出平台链接和邮箱地址。

RFC 9116 字段一览

• Contact(必填,可重复):mailto:、https: 或 tel: URI。顺序表示优先级。

• Expires(必填,恰好一次):RFC 3339 日期时间,例如 2027-04-30T23:59:59Z;建议设为不到一年之后。

• Encryption(可重复):获取你公钥的位置,可为 https://、dns:(OPENPGPKEY 记录)或 openpgp4fpr:(指纹)。切勿直接粘贴密钥本身。

• Acknowledgments(可重复):感谢报告者的页面。

• Preferred-Languages(一次):以逗号分隔的语言标签,例如 en, fr。

• Canonical(可重复):该文件应当存放的网址。

• Policy(可重复):你的漏洞披露政策。

• Hiring(可重复):安全相关的招聘职位。

• CSAF(可重复,由 OASIS 注册):CSAF 安全公告源的 provider-metadata.json。

网页 URI 必须使用 https://。以 # 开头的行是注释。

漏洞披露政策应该写些什么

研究人员会通过 Policy 链接了解报告是否安全。请写明范围(哪些域名和应用)、不在范围内的内容(拒绝服务、社会工程、自动扫描器输出)、你确认和修复报告的速度、是否提供奖励,以及一份安全港声明:对于遵守该政策的善意研究,你不会采取法律行动。一个简短清晰的页面,比冗长的法律文书能收到更多有用的报告。

security.txt 与 robots.txt

两者并排存放,但用途不同:robots.txt 告诉爬虫哪些内容不要抓取,security.txt 告诉人们如何联系你的安全负责人。不要把 security.txt 或 /.well-known/ 列在 Disallow 下;研究人员和扫描器需要读取它,而且在 robots.txt 中屏蔽它也并不能把它藏起来。

相关免费工具

  • Robots.txt 生成器 — 生成 robots.txt,提供全部允许、测试环境和 WordPress 预设,带 AI 爬虫设置(禁止训练、保留 AI 搜索),并对会导致网站被移出索引的错误发出警告。
  • 密码生成器 — 生成高强度随机密码、好记的密码短语或 PIN 码。完全在浏览器中运行,不发送、不存储任何内容。
  • Meta 标签生成器 — 填写页面的标题、描述和社交卡片信息,即可得到完整且正确转义的 <head> 代码块,并实时显示长度计数。
  • JWT 解码器 — 解码 JWT 的头部和载荷,用通俗语言显示过期时间,验证 HS、RS、PS 和 ES 签名,或签发新令牌。任何数据都不会离开浏览器。