HTTPS 站点:通过 HTTP 加载外部 CSS

HTTPS Site: Load an external CSS over HTTP

本文关键字:加载 外部 CSS HTTP 通过 站点 HTTPS      更新时间:2023-09-26

我有一个安全的(HTTPS)Web应用程序,需要从不安全的(HTTP)源(客户自己的网站)加载自定义样式表。这被现代浏览器阻止了,但是我需要解决方法,因为:

1) 我不能要求我的客户在 HTTPS 上托管他们的自定义样式表。他们没有专业知识,其中一些人有关于可以托管哪些主机和区域的政策(具有讽刺意味的是,不是关于HTTPS)。 2)我显然不能要求最终用户禁用浏览器中的安全功能。

我尝试过,使用 <style>@import url(...);</style> 加载样式表,我尝试

使用 src="about:blank" 创建一个 iframe 并从那里加载样式表,我尝试了 XHR 并获取(但这需要在远程主机上启用 CORS,这是我无法合理期望的)。

除了创建一个可以在网络上提供任何样式表的安全代理之外,我在这里缺少任何其他解决方法吗?

有什么巫术可以让我的页面通过HTTP加载跨源样式表吗?

如果有解决方法可以在安全页面上加载不安全的资源,则应尽快对其进行修补。否,该策略之所以存在,是因为如果没有所有资源的 HTTPS,您就没有真正的安全。任何 HTTP 连接都可能被拦截和中间人,因此页面不安全。即使是像样式表这样小的东西也会破坏这种安全性。

您将不得不通过HTTPS提供样式表,如果您的客户无法做到这一点,您将不得不为他们做。

是否可以下载他们的CSS服务器端,并通过HTTPS将其提供给您自己的用户?

我尝试用我构建的 Web 应用程序做同样的事情。您要执行的操作的真正问题是浏览器。它不允许安全连接被不安全的连接破坏,尤其是当您想在该页面上注入某些内容时。我使用了这种技术:

document.createElement("link") 

要注入。由于浏览器安全性是一个大问题,我认为您不会发现黑客攻击。祝你好运!:)