CSS背景图片导致的SSL和混合内容

Kif*_*fin 24 css url ssl https image

我有一个包含上午表格的网页.对于与该页面匹配的所有请求,通过Apache重定向启用HTTPS.不幸的是,由于CSS使用'background-image:url(/ images/...)'拉入外部图像,浏览器将生成一条警告消息,指出该页面包含混合内容.

解决此问题的最佳方法是什么?

ada*_*ign 31

更新2014.12.17:

现在,每个人都鼓励使用 SSL ,并且没有性能问题,这种技术现在已成为一种反模式.如果您需要的资产在SSL上可用,则始终使用该https://资产.

允许通过HTTP请求代码段打开了攻击的大门,就像最近的Github Man-on-side攻击一样.它总是安全的HTTPS请求资产即使您的网站是HTTP,但是相反的 是不正确的.

Eric Mills的CDN和HTTPS指南中提供了更多指导和详细信息.

来源:Paul Irish - 协议相对URL


这是一个非常流行的解决方案:

有这个小技巧,你可以逃脱,这将节省你一些头痛:

在HTML中

<img src="//domain.com/img/logo.png">
Run Code Online (Sandbox Code Playgroud)

在CSS中

div{background: url(//path/to/image.png);}
Run Code Online (Sandbox Code Playgroud)


Jon*_*erg 9

您还应该为静态资源启用HTTPS,然后确保<link>明确引用CSS资源的HTTPS URL(其相对URL将相对于CSS文件的HTTPS基础进行解释).