1

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

资源解释为图像,但使用 MIME 类型 application/octet-stream 传输:“ http://static7.businessinsider.com/assets/images/faviconBI.ico ”。

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

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

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

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

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

我怎样才能减轻这种情况?(我没有时间逐个域地执行此操作)。

4

1 回答 1

1

当您向服务器发出请求时,服务器会使用附加到响应的 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 类型可能会导致副作用。但老实说,我在现实中从未听说过此类问题。如果您只提供图像,那么根本没有风险。

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

于 2013-03-20T13:59:21.793 回答