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