Google Chrome调试控制台报告以下内容
资源解释为图像但使用MIME类型传输 应用/八位字节流: “http://static7.businessinsider.com/assets/images/faviconBI.ico”。
其中很多都来自其他领域。
根据此SO Post,这可能会导致安全问题。
我可以采取什么行动让这些域名正确设置mime类型。
在我使用的开源库之前我遇到过这个问题,并且在我给他发邮件之后,作者很好地修复了他的mime类型
但总的来说,似乎大多数域名都不担心正确设置mime类型。
我该如何缓解这种情况? (我没有时间在逐个域的基础上这样做。)
答案 0 :(得分:1)
当您向服务器发出请求时,服务器将响应附加到响应的MIME类型。因此,如果服务器没有正确设置MIME类型,那么你无能为力。
您当然可以编写自己的代理,但这将是一个代理。例如,如果您有一个URL
http://foo.bar/test.js
以MIME类型text/html
(它应该是application/javascript
)返回,然后您可以编写一个代理,它将为您获取该URL,它将设置正确的MIME类型,它会把回应推到你这边。由于代理将位于不同的域中,因此您必须通过(例如)
http://proxy/?url=http://foo.bar/test.js
现在显然,如果您尝试访问现有网页,它将无法帮助您,因为它们不会指向代理的网址。
至于安全问题,是的,在极少数情况下,MIME类型可能会导致副作用。但说实话,我从未听说过现实中的这些问题。如果你只打算提供图像,那么根本没有风险。
现在这种代理有严重的性能损失,因为当然每个请求都必须通过代理。