javascript - 为什么 mime 类型通常设置不正确?

标签 javascript

Google Chrome 调试控制台报告以下内容

Resource interpreted as Image but transferred with MIME type application/octet-stream: "http://static7.businessinsider.com/assets/images/faviconBI.ico".

其中有许多都是由其他域提供的。

根据这个SO Post这可能会导致安全问题。

我可以采取什么措施来让这些域正确设置 MIME 类型。

我在使用我使用的开源库之前就遇到过这个问题,在我给他发电子邮件后,作者很友善地修复了他的 mime 类型

但总的来说,大多数域似乎并不担心正确设置 MIME 类型。

如何缓解这种情况? (我没有时间逐个域地执行此操作)。

最佳答案

当您向服务器发出请求时,服务器会使用附加到响应的 MIME 类型进行响应。因此,如果服务器没有正确设置 MIME 类型,那么您无能为力。

您当然可以编写自己的代理,但这只是一个代理。例如,如果您有一个 URL

http://foo.bar/test.js

它返回 MIME 类型 text/html (它应该是 application/javascript ),然后你可以编写一个代理,它将为你获取该 URL ,它会设置正确的 MIME 类型,并将响应推送到您这边。由于代理将位于不同的域上,因此您必须通过(例如)访问 URL

http://proxy/?url=http://foo.bar/test.js

现在,如果您尝试访问现有网页,显然它不会对您有帮助,因为它们不会指向代理的 URL。

至于安全问题,是的,在某些极少数情况下,MIME 类型可能会导致副作用。但说实话,现实中我从来没有听说过这样的问题。如果您只提供图像,那么根本没有风险。

现在,此类代理的性能受到严重影响,因为当然每个请求都必须通过代理。

关于javascript - 为什么 mime 类型通常设置不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525326/

相关文章:

javascript - 带有选项的日期选择器选择几天

javascript - Yii2 如何将 php 数组数据传递到 highcharts

javascript - 更改从 HTML 页面复制到剪贴板的文本颜色

javascript - 使用 selenium 和 python 在文本框中快速写入

javascript - React-admin - 如果未通过身份验证,我如何强制 Dasbhoard 要求登录

javascript - 找时间在一张图中写一个数字

javascript - Selenium Webdriver - 仅具有精确值标识的元素,js/html

javascript - Google 提供的计时器脚本不满意

javascript - tsconfig 中的模块选项是用来做什么的?

javascript - 如何使单选按钮水平并带有填充