如何使用 HTTP Headers 来保护你的 Web 应用( 四 )


幸运的是,X-Content-Type-Options 响应头缓解了这个漏洞 。此响应头在 2008 年引入 IE8,目前大多数主流浏览器都支持(Safari 是唯一不支持的主流浏览器),它指示浏览器在处理获取的资源时不使用嗅探 。因为 X-Content-Type-Options 仅在 「Fetch」规范中正式指定,实际的实现因浏览器而异 。一部分浏览器(IE 和 Edge)完全阻止了 MIME 嗅探,而其他一些(Firefox)仍然会进行 MIME 嗅探,但会屏蔽掉可执行的资源(JavaScript 和 CSS)如果声明的内容类型与实际的类型不一致 。后者符合最新的 Fetch 规范 。
X-Content-Type-Options 是一个很简单的响应头,它只有一个指令,nosniff 。它是这样指定的:X-Content-Type-Options: nosniff 。以下是示例代码:
function requestHandler(req, res){res.setHeader('X-Content-Type-Options','nosniff');}复制代码总结本文中,我们了解了如何利用 HTTP 响应头来加强 web 应用的安全性,防止攻击和减轻漏洞 。
要点

  • 使用 Cache-Control 禁用对机密信息的缓存
  • 通过 Strict-Transport-Security 强制使用 HTTPS,并将你的域添加到 Chrome 预加载列表
  • 利用 X-XSS-Protection 使你的 web 应用更加能抵抗 XSS 攻击
  • 使用 X-Frame-Options 阻止点击劫持
  • 利用 Content-Security-Policy 将特定来源与端点列入白名单
  • 使用 X-Content-Type-Options 防止 MIME 嗅探攻击
请记住,为了使 web 真正迷人,它必须是安全的 。利用 HTTP 响应头构建更加安全的网页吧!




推荐阅读