23

我强制https访问我的网站,但必须加载某些内容http(例如视频内容不能通过 https),但浏览器由于mixed-contents策略而阻止了请求。

经过数小时的搜索,我发现我可以使用Content-Security-Policy但我不知道如何允许混合内容。

<meta http-equiv="Content-Security-Policy" content="????">
4

2 回答 2

24

你不能。

CSP 用于限制您网站上的内容,而不是放松浏览器限制。

为用户提供某些保证的安全 https 站点,然后允许在其上加载 http 内容是不公平的(因此会出现混合内容警告),如果您可以在未经用户同意的情况下隐藏这些警告,则真的不公平。

您可以将 CSP 用于帮助迁移到 https 的一些事情,例如:

  1. 您可以使用它自动将 http 请求升级为 https(尽管浏览器支持并不普遍)。如果您错过将 http 链接更改为 https 等效项,这将有所帮助。然而,这假设资源可以通过 https 加载,听起来你不能通过 https 加载它们,所以这不是一个选项。

  2. 您还可以使用 CSP 来帮助您识别您错过的站点上的任何 http 资源,方法是向您可以监控的服务报告一条消息,说明已尝试加载 http 资源。这允许您识别并修复指向 https 的 http 链接,因此您不必依赖上述自动升级。

但两者都不是你真正想要的。

于 2016-05-06T20:32:43.343 回答
14

你不应该......但你可以,这里演示了一个 HTTP PNG 图像,它是一个动态转换为 HTTPS 的图像。

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

还有一个新的权限 API,描述在这里,它允许 Web 服务器检查用户对地理定位、推送、通知和 Web MIDI 等功能的权限。

于 2017-08-23T14:23:24.607 回答