如果图像文件名未反射(reflect)其正确的文件类型(例如以 .pdf 扩展名存储),在 HTML 中使用它是否安全?浏览器会决定图像的正确类型吗?移动浏览器能够推断出正确的文件类型吗?
我已经用 google chrome 对其进行了测试,它可以正常工作,但是它能保证在所有合理的浏览器上运行吗?
更新:我无法将它们重命名为正确的扩展名,因为它们将由用户上传,然后再次显示。
最佳答案
Will mobile browsers be able to deduce correct file type?
浏览器通常不会推断文件类型(有异常(exception),特别是在 IE 中,导致讨论 HTML 的文本文件被视为 HTML,并且 IIS 服务器发送 text/plain
HTML 文档的内容类型,而其所有者却没有注意到——但它们不应该成为主要关注点)。
相反,浏览器通过检查 HTTP Content-Type
响应 header 来确定数据类型。默认情况下,大多数服务器将根据它们从文件系统读取以服务于客户端的文件的文件扩展名来设置此值。
您可以覆盖此设置,但这样做很繁琐,如果人们在从本地文件系统打开文件之前保存文件,则可能会导致问题(因为该文件将具有错误的扩展名,并且他们的操作系统会将其与错误的应用程序关联)。
关于HTML - 扩展名错误的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15114626/