你不能不知道的安全性 HTTP headers

作者:Larry Lu
译者:前端小智
来源:stackabuse

有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

随着网络上的 Web 应用越来越多,为了提升安全性,现在跟安全性有关的 HTTP header 也是多到记不得。因为各种不同功能的 HTTP header 实在太多,所以这边想要介绍几个比较简单、好设定的安全性 headers ,只要把这些 headers 加进去,网站就会突然变安全哦~

Content Security Policy (CSP)

首先是历史悠久的 CSP,这个 header 是用来限制浏览器只能从哪些地方载入资源。譬如说我设定 Content-Security-Policy: default-src larry.com,就代表我限制浏览器只能从 larry.com 这个域名载入图片、CSS、字体等等各种资源

当然想设定很多个域名也是可以的,只要一直往下接就可以了。下图开发者工具的内容是我上 Github 首页时 response header 裡的 CSP 设定,他就是把 uploads.github.comapi.github.com 等等很多个网域都加进去,虽然看起来很冗长,但至少有一个白名单,不会莫名其妙载入其他域名的东西

你不能不知道的安全性 HTTP headers_第1张图片

如果想针对不同类型的资源有不同的 policy(虽然比较麻烦但会更安全),那也可以写成 Content-Security-Policy: img-src a.com; font-src b.com 的形式,那浏览器就会知道你希望只能从 a.com 载入图片、从 b.com 载入字体

想看还有哪些属性可以设定可以参考 MDN 上的 Directives

那限制域名有什么用呢?假如哪天黑客在我的网站上发现了一个 XSS 漏洞,让他可以在首页的 HTML 中加入一段

你可能感兴趣的:(你不能不知道的安全性 HTTP headers)