MIME 嗅探
MIME 嗅探 是什么?
MIME 嗅探浏览器根据响应字节猜测内容类型的行为,可被利用,将用户上传的文件作为脚本执行。
MIME 嗅探是浏览器的遗留特性:检查响应的前几个字节,并覆盖服务器声明的 Content-Type,以便更"贴心"地渲染资源。当应用以错误类型提供用户上传文件时,攻击者可借此发动攻击:含 HTML 或 JavaScript 的文件可能被嗅探为 text/html,并在受害者的源中执行,从而形成存储型 XSS。标准缓解措施是返回 X-Content-Type-Options: nosniff 响应头,强制浏览器遵循声明的类型。建议结合严格的 Content-Type、CSP,以及将用户内容置于独立源来部署。
● 示例
- 01
X-Content-Type-Options: nosniff
- 02
头像上传端点声明 image/png 但内容是 HTML;若未启用 nosniff,浏览器会作为页面执行。
● 常见问题
MIME 嗅探 是什么?
浏览器根据响应字节猜测内容类型的行为,可被利用,将用户上传的文件作为脚本执行。 它属于网络安全的 应用安全 分类。
MIME 嗅探 是什么意思?
浏览器根据响应字节猜测内容类型的行为,可被利用,将用户上传的文件作为脚本执行。
MIME 嗅探 是如何工作的?
MIME 嗅探是浏览器的遗留特性:检查响应的前几个字节,并覆盖服务器声明的 Content-Type,以便更"贴心"地渲染资源。当应用以错误类型提供用户上传文件时,攻击者可借此发动攻击:含 HTML 或 JavaScript 的文件可能被嗅探为 text/html,并在受害者的源中执行,从而形成存储型 XSS。标准缓解措施是返回 X-Content-Type-Options: nosniff 响应头,强制浏览器遵循声明的类型。建议结合严格的 Content-Type、CSP,以及将用户内容置于独立源来部署。
如何防御 MIME 嗅探?
针对 MIME 嗅探 的防御通常结合技术控制与运营实践,详见上方完整定义。
● 相关术语
- appsec№ 496
HTTP 安全响应头
指示浏览器执行强制 HTTPS、限制嵌入、内容策略和引用来源等防御行为的响应头集合。
- attacks№ 240
跨站脚本(XSS)
一种 Web 漏洞,攻击者可在其他用户浏览的页面中注入恶意脚本,使其在受害者浏览器中以该站点的来源身份运行。
- appsec№ 214
内容安全策略 (CSP)
一种 HTTP 响应头,告诉浏览器允许加载哪些来源的脚本、样式、框架等内容,从而限制 XSS 与数据注入攻击的影响。
- attacks№ 541
不安全文件上传
Web 应用未经严格校验即接收用户上传文件的漏洞,攻击者可借此上传恶意文件,导致远程代码执行、网页篡改或数据泄露。
- appsec№ 960
同源策略 (SOP)
浏览器的安全规则,限制来自一个源的文档或脚本如何与来自不同源的资源交互。
- appsec№ 982
安全编码
在编写源代码时遵循防御性模式、语言特定规则与公认指南,以最大程度减少安全缺陷的实践。