了解HTTP安全标头(HTTP Security Headers)
安全标头是指定网络客户端(通常是浏览器)和应用程序服务器之间 HTTP 通信行为和安全相关细节的 HTTP 响应标头,其目的是促进深度防御。一旦设置了这些 HTTP 响应头,就能限制现代浏览器运行到容易预防的漏洞,并增加应用程序的安全层。
每个应用程序中配置以下安全标头:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-xss-protection: 0
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
referrer-policy: no-referrer-when-downgrade
permissions-policy: battery=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
content-security-policy: frame-ancestors ‘self’; upgrade-insecure-requests; block-all-mixed-content;
strict-transport-security
这个安全标头的全称是HTTP Strict Transport Security(HSTS),它告诉浏览器仅通过HTTPS而不是HTTP来与服务器通信。这可以防止SSL剥离攻击,其中攻击者可能会尝试将用户从安全的HTTPS连接降级到不安全的HTTP连接。通过设置
max-age
参数,你可以指定浏览器应该记住网站仅可通过HTTPS访问的时间长度。
includeSubDomains
指令确保所有子域也将采用这一策略,而
preload
指令意味着你希望你的域名被包含在浏览器的HSTS预加载列表中。
x-xss-protection
这个标头旨在开启特定的浏览器端反射型XSS(跨站脚本)保护机制。然而,由于现代浏览器已经内建了更有效的XSS保护策略,
x-xss-protection: 0
实际上是推荐的设置,因为它禁用了浏览器自带的XSS过滤器,以避免其潜在不一致性和漏洞被利用。
x-frame-options
X-Frame-Options
标头可以防止点击劫持攻击,通过指定你的页面是否可以在其他网站的
<frame>
、
<iframe>
、
<embed>
或
<object>
中显示。
SAMEORIGIN
值指令浏览器只允许来自相同域的页面将当前页面作为frame展示,这样可以防止恶意网站包含你的网页在一个frame中并诱导用户进行不知情的交互。
x-content-type-options
X-Content-Type-Options
标头是为了阻止浏览器去尝试“嗅探”并自动识别错误声明的资源类型,其值为
nosniff
。这主要是为了防止基于MIME的攻击,确保在
Content-Type
头声明为某种类型时,浏览器也将仅以该方式处理响应的内容。
referrer-policy
Referrer-Policy
标头用来控制HTTP Referer标头的内容,影响浏览器将站点的地址通过Referer标头发送给其他网站的方式。
no-referrer-when-downgrade
是默认的行为,意味着当从HTTPS页面导航到HTTP页面时,Referer标头将不会被发送,但在HTTPS到HTTPS的导航中会被发送。
permissions-policy
Permissions-Policy
(以前称为Feature Policy)允许网站作者控制哪些跨域和同域的iframe可以使用哪些特定的Web平台特性。例如,禁用或启用如摄像头、地理位置等功能。在上面的示例中,所有列出的特性都被设置为
()
, 意味着这些特性对所有iframe都被禁用。
content-security-policy
Content-Security-Policy
(CSP) 是一个重要的安全标头,用于减少跨站脚本(XSS)攻击的风险。它可以用来指定哪些动态资源可以被加载和执行。在上面的配置中,
frame-ancestors 'self';
指定页面只能被同源域的页面作为frame嵌套,
upgrade-insecure-requests;
会将所有通过HTTP加载的资源请求自动升级为HTTPS,而
block-all-mixed-content;
阻止页面加载任何混合内容(即同时存在HTTPS和HTTP资源的页面)。
参考链接
- MDN Web Docs - HTTP 标头
- Content Security Policy (CSP) 参考文档
- Web.dev - 提高网页安全性的 HTTP 标头
- OWASP - HTTP Strict Transport Security Cheat Sheet
- W3C - Permissions Policy
版权归原作者 黑风风 所有, 如有侵权,请联系我们删除。