这是什么
每次浏览器加载你的页面时,你的服务器都会返回页面本身,外加一小串访客看不到的指令——这些叫做「响应头」(headers)。有几个特定的响应头纯粹是为了安全而存在:它们告诉浏览器诸如「不要自己猜测文件类型」或「不要让其他网站把我的页面嵌入隐形框架」之类的事情。它们完全不会改变你网站的外观——对访客来说完全不可见,在后台悄悄工作。
为什么重要
如果没有这些响应头,浏览器会退回到更宽松、更陈旧的默认行为,而这正是少数攻击手段所依赖的——比如诱骗浏览器把某个文件当作别的类型来运行,或者把你的登录页面隐形嵌入到另一个网站中以窃取输入的信息。缺少安全响应头不一定会立刻破坏什么明显的东西,但它们是注重安全的访客、做基本尽职调查的潜在商业伙伴,或自动化扫描工具最先检查的项目之一——「这些都没配置」读起来就像一个尚未彻底完成的网站。
如何解决
- 确定你的网站托管方式:像 Netlify、Vercel 或 Cloudflare Pages 这样的静态托管;使用 cPanel 的传统虚拟主机;还是自己的服务器。
- 在 Netlify 或 Cloudflare Pages 上:在网站发布文件夹中添加一个名为
_headers的纯文本文件,写入类似X-Content-Type-Options: nosniff的行——两个平台都会自动应用,无需编写代码。 - 在 Vercel 上:添加一个
vercel.json文件,其中包含headers部分,列出相同的响应头名称和值——Vercel 自己的文档中有可直接复制粘贴的示例。 - 在传统主机或自己的服务器上,询问托管商的支持团队(或搜索「[你的托管商名称] 添加安全响应头」)——大多数托管商针对其控制面板都有简短、具体的答案。
- 至少添加
X-Content-Type-Options: nosniff和Referrer-Policy: strict-origin-when-cross-origin——这两个安全、简单,几乎适用于任何小型网站。 - 之后重新运行你的 Launch Readiness 检查,确认现在已检测到这些响应头。