HTTP安全头生成器

在线生成 HSTS、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy 等安全响应头,加固网站。

功能说明

本工具用于生成常见的 HTTP 安全响应头配置,支持 Nginx 和 Apache 两种服务器格式。您可以通过开关和下拉菜单选择需要启用的安全头,并设置具体参数,工具会实时生成对应的配置片段和每个头的用途说明。

使用方法

计算原理

每个安全头对应一个 HTTP 响应头字段,其值由您选择的选项拼接而成。例如:

安全头生成规则
Strict-Transport-Securitymax-age=值 + 可选的 includeSubDomains 和 preload
X-Frame-Options直接使用 DENY 或 SAMEORIGIN
X-Content-Type-Options固定为 nosniff
Referrer-Policy从预设策略中选择
Permissions-Policy将选中的功能权限设为禁止(())

注意事项

HSTS 的 max-age 设置多少合适?

建议至少 31536000 秒(1年)。如果站点完全支持 HTTPS,可以设置更长时间,但要注意 preload 一旦提交,撤销需要等待审核。对于测试环境可以设置较短时间,例如 300 秒。

X-Frame-Options 和 CSP frame-ancestors 有什么区别?

X-Frame-Options 是旧标准,只支持 DENY 和 SAMEORIGIN,而 CSP 的 frame-ancestors 支持更灵活的域名列表。现代浏览器优先支持 CSP,但 X-Frame-Options 仍有兼容价值,建议同时设置。

为什么我设置了 Permissions-Policy 但浏览器不生效?

Permissions-Policy 的语法要求严格,且部分浏览器对某些功能(如 USB)支持有限。请检查是否使用了正确的功能名称(如 camera、microphone),并确保没有拼写错误。另外,某些功能可能需要在 HTTPS 下才能生效。

生成的 Nginx 配置中 always 参数有什么作用?

always 参数表示无论响应状态码是什么(包括错误页),都会发送该响应头。如果不加,Nginx 默认只在 200、201、204、206、301、302、303、304、307、308 状态码下发送。对于安全头,建议加上 always 以确保所有响应都包含。