Mb1*_*175 1 http go content-negotiation mime-types
检测内容类型,JavaScript 支持 ?
https://github.com/golang/go/blob/c3931ab1b7bceddc56479d7ddbd7517d244bfe17/src/net/http/sniff.go#L21
http 方法DetectContentType背后是否有真正的原因不支持JavaScript?
正如文档评论所述,实现了https://mimesniff.spec.whatwg.org/DetectContentType中描述的算法,该算法不检测 JavaScript。那么问题就变成了:为什么不呢?
规范的介绍中给出了答案:
\n\n\n当“诚实”服务器允许潜在恶意用户上传自己的文件,然后使用低权限 MIME 类型提供这些文件的内容时,这些安全问题最为严重。例如,如果服务器认为客户端会将贡献的文件视为图像(因此将其视为良性),但用户代理认为内容是 HTML(因此有权执行其中包含的任何脚本),则攻击者可能能够窃取用户\xe2\x80\x99s 身份验证凭据并发起其他跨站点脚本攻击。(当然,恶意服务器可以在 Content-Type 标头字段中指定任意 MIME 类型。)
\n本文档描述了一种内容嗅探算法,该算法仔细平衡用户代理的兼容性需求与现有 Web 内容所施加的安全约束。
\n
如果不可信输入(甚至是!)将不可信输入标记为 JavaScript 可能会导致安全灾难。
\n