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

发布于 2024-08-07 13:32:04 字数 162 浏览 1 评论 0原文

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

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

I have a web page containing am entry form. HTTPS is enabled via an Apache redirect for all requests matching that page. Unfortunately, because the CSS pulls in external images using 'background-image: url(/images/...)', the browser will generate a warning message that the page contains mixed content.

What's the best way to resolve this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不爱素颜 2024-08-14 13:32:04

2014年12月17日更新:

现在 SSL 鼓励所有人使用并且没有性能
关注
这种技术现在是一种反模式。如果您的资产>需要在 SSL 上可用,则始终使用 https:// 资产。

允许代码片段通过 HTTP 请求为攻击打开了大门
就像 最近的 Github Man-on-the-side 攻击始终安全
即使您的网站使用 HTTP,也请求 HTTPS 资源,但反之亦然
不正确

更多指导和详细信息请参见 Eric Mills ' CDN 和指南HTTPS

资料来源:Paul Irish – 协议相对 URL


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

有一个小技巧可以让你摆脱困境:

在 HTML 中

<img src="//domain.com/img/logo.png">

在 CSS 中

div{background: url(//path/to/image.png);}

Update 2014.12.17:

Now that SSL is encouraged for everyone and doesn’t have performance
concerns
, this technique is now an anti-pattern. If the asset you > need is available on SSL, then always use the https:// asset.

Allowing the snippet to request over HTTP opens the door for attacks
like the recent Github Man-on-the-side attack. It’s always safe to
request HTTPS assets even if your site is on HTTP, however the reverse
is not true.

More guidance and details in Eric Mills’ guide to CDNs & HTTPS.

Source: Paul Irish – The Protocol-relative URL


Here is a very popular solution:

There's this little trick you can get away with that'll save you some headaches:

In HTML

<img src="//domain.com/img/logo.png">

In CSS

div{background: url(//path/to/image.png);}
不回头走下去 2024-08-14 13:32:04

您还应该为静态资源启用 HTTPS,然后确保 显式引用 CSS 资源的 HTTPS url(其相对 url 将相对于 HTTPS 基础进行解释) CSS 文件的内容)。

You should also enable HTTPS for your static resources, and then make sure that the <link> refers explicitly to the HTTPS url for the CSS resource (whose relative urls will then be interpreted relative to the HTTPS base of the CSS file).

一个人的旅程 2024-08-14 13:32:04

您应该为您的图像使用完整的 URL:

https://your.domain.com/img/image.png`

或者

https://your.domain.com/route/to/img/image.png

这解决了我前段时间的问题。

You should use full URL for your image:

https://your.domain.com/img/image.png`

or

https://your.domain.com/route/to/img/image.png

This solved my problem some time ago.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文