听起来您在解决混合内容政策方面遇到了问题。有许多方法可以解决并得出解决方案。
我的建议是不要使用 Google 提供和引用的一些文档:https://web.dev - Fixing Mixed Content。
当初始 HTML 通过安全的 HTTPS 连接加载,但其他资源(例如图像、视频、样式表、脚本)通过不安全的 HTTP 连接加载时,就会出现混合内容。这称为混合内容,因为加载 HTTP 和 HTTPS 内容以显示同一页面,并且初始请求通过 HTTPS 是安全的。
当此类基于首字母的 HTML 通过安全的 HTTPS 连接在网络上传输时,首先会出现混合内容。虽然,当您所说的其他资源时出现问题,例如:
...通过不安全的 HTTP 连接加载。这是所描述的混合内容问题的定义。这是因为与正在请求和加载以显示在所需来源的网站上的 HTTP 和 HTTPS 内容的资产有关的问题。主要问题是初始请求最初是通过 HTTPS 协议安全发送的。
注意:在继续之前,当过度使用不安全的HTTP传输协议请求这些子资源时,将会打开整个源站的漏洞。此类漏洞攻击称为on-path攻击。
根据您的网站用户群主要针对的浏览器,有一些修复和预防措施需要注意被谷歌浏览器等浏览器推出。这将在可能的情况下升级被动混合内容。这样的过程将决定资源资产是否可通过 HTTPS 获得,但确定它是否创建为通过 HTTP 协议提供服务,浏览器将改为加载 HTTPS 版本。所以总而言之,它将忽略 HTTP 资源。
内容安全政策 (CSP)
您需要参考此处链接的https://web.dev - Fixing Mixed Content 的以下部分。它将允许您利用可用于解决和管理混合内容问题的基于浏览器的实现。这允许并为实施不同的执法政策提供了机会。
- 要启用 CSP,您可以将站点设置为返回
Content-Security-Policy HTTP 标头。它取代了旧的 X-Content-Security-Policy 政策。
我的建议是使用<meta> HTML 元素。这将允许您自定义在 CSP 方面您信任的域,并使用此元素实现不同的自定义。
这是一个示例,您确实希望允许来自受信任域的任何资源内容,并且您可以使用替代格式来允许子域和其他方面授予所需的结果。请注意格式,遵循子域设置。
Content-Security-Policy: default-src 'self' example_trusted.com *.example_trusted.com
因此,在使用此功能时,您可以对某些资源(例如您决定信任的广告或图像)采取一种方法,但必须进行适当的设置。
一个模糊的例子可能是,没有星号:
content="default-src 'self' https://example.com http://example.com:80/images/"
以下结论得出结论:
https://example.com # Correct
http://example.com/images/ # (Missing) Incorrect Port
http://example.com:80/images/image.jpg - Correct Port
https://example.com:81 # (Missing) Incorrect Port
您可以使用Mozilla - Content-Security-Policy 引用的这些方法,这可能有助于形成解决方案。
或者只是变得完全脆弱。
content="default-src * 'unsafe-inline' 'unsafe-eval'"
StackOverflow 上的许多引用,例如本文中引用的 How does Content Security Policy (CSP) work?。希望我能有所帮助。
完整的参考文献列表: