2016-03-08 33 views
1

我有一个安全(HTTPS)web应用程序,需要从不安全(HTTP)来源(客户自己的网站)加载自定义样式表。这是由现代浏览器,但我需要一个解决方法,因为:HTTPS站点:通过HTTP加载外部CSS

1)我不能要求我的客户托管他们的自定义样式表在HTTPS。他们没有技术诀窍,他们中的一些人有关于可以托管哪些主机和区域内容的政策(具有讽刺意味的是,不涉及HTTPS)。 2)我显然不能要求最终用户在浏览器中禁用安全功能。我尝试使用加载样式表,我试图用src =“about:blank”创建一个iframe,然后从那里加载样式表,我尝试了XHR并获取(但是需要在远程启用CORS主机,我不能合理预期)。

创建一个安全的代理服务器可以在网上提供任何样式表,还有什么其他解决方法我在这里丢失吗?

任何巫术让我的网页通过HTTP加载跨源样式表?

回答

1

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

必须通过HTTPS提供样式表,并且如果您的客户不能这样做,您将不得不为他们做。

+0

“如果有解决方法能够加载安全页面上的不安全资源,它应尽快修补” 这很有道理。但是,我们可以*显式*使用XHR加载不安全的资源,即使跨域。该策略存在(如果我理解正确),以防止*无意中通过使用可能成为MITM受害者的样式表/脚本标记加载不安全资源。这是一个很好的政策。我已经看到了ISP将JS注入页面以显示广告的情况。但是策略应该设置安全的默认值,但是允许开发者在特殊情况下覆盖事物。这是我的意思关于解决方法。 – sstur

0

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

0

我试图用我建立的webapp做同样的事情。你想做什么的真正问题是浏览器。它不允许安全连接被不安全的连接所破坏,特别是当你想在该页面上注入某些东西时。我用这个技术:

document.createElement("link") 

要注射。而浏览器的安全性是一个大问题,我不认为你会发现一个黑客.. 祝你好运! :)

相关问题