解决https网页加载http资源报错问题

Barret李靖 2024-03-11 16:32:44电脑知识
38

HTTPS 是 HTTP over Secure Socket Layer,以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 http 请求,一旦出现就是提示或报错:

Mixed Content: The page at ‘https://www.taobao.com/‘ was loaded over HTTPS, but requested an insecure image ‘http://g.alicdn.com/s.gif’. This content should also be served over HTTPS.

HTTPS改造之后,我们可以在很多页面中看到如下警报:

解决https网页加载http资源报错问题.jpg

很多运营对 https 没有技术概念,在填入的数据中不免出现 http 的资源,体系庞大,出现疏忽和漏洞也是不可避免的。

CSP设置upgrade-insecure-requests

好在 W3C 工作组考虑到了我们升级 HTTPS 的艰难,在 2015 年 4 月份就出了一个 Upgrade Insecure Requests 的草案,他的作用就是让浏览器自动升级请求。

在我们服务器的响应头中加入:

header("Content-Security-Policy: upgrade-insecure-requests");

我们的页面是 https 的,而这个页面中包含了大量的 http 资源(图片、iframe等),页面一旦发现存在上述响应头,会在加载 http 资源时自动替换成 https 请求。可以查看 google 提供的一个 demo:

解决https网页加载http资源报错问题2.jpg

不过让人不解的是,这个资源发出了两次请求,猜测是浏览器实现的 bug:

解决https网页加载http资源报错问题3.jpg

当然,如果我们不方便在服务器/Nginx 上操作,也可以在页面中加入 meta 头:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

目前支持这个设置的还只有 chrome 43.0,不过我相信,CSP 将成为未来 web 前端安全大力关注和使用的内容。而 upgrade-insecure-requests 草案也会很快进入 RFC 模式。

从 W3C 工作组给出的 example,可以看出,这个设置不会对外域的 a 链接做处理,所以可以放心使用。

相关阅读

http://www.w3.org/TR/mixed-content/

https://www.chromestatus.com/feature/6534575509471232

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持站长工具网。

https http
THE END
colg

相关推荐

基于PyQt5的HTTP接口测试工具开发实战
为了提高测试效率和准确性,开发一个用户友好的HTTP接口测试工具显得尤为重要。本文将介绍如何使用Python和PyQt5框架开发一个简单的HTTP接口测试工具。该工具不仅支持GET和PO...
2024-12-11 编程技术
104

百度站长平台检测 https 网站 robots.txt 出错怎么解决?
当百度站长平台检测到 https网站的 robots.txt 出错时,这可能会影响网站在百度搜索引擎中的索引和排名情况。因此,了解如何解决这些错误是网站所有者和运营者必须掌握的技能...
2024-10-16 站长之家
135

站长工具网:浅谈HTTPS对网站SEO优化的一些影响
随着互联网的发展,网络安全问题日益凸显。为了保护用户数据和隐私,越来越多的网站选择使用HTTPS协议来加密数据传输。除了提升网站的安全性,HTTPS还对网站的搜索引擎优化(...
2024-08-19 站长之家
134

MQTT是什么意思?MQTT和HTTP协议有什么区别?
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)和HTTP(HyperText Transfer Protocol,超文本传输协议)是两种常见的数据传输协议,但它们在设计目标、应用...
2024-08-05 电脑知识
146

Nginx从哪个版本开始支持HTTP/3协议
Nginx从1.25版本开始正式支持QUIC和HTTP/3协议。特别是从1.25.0版本开始,Linux环境下的Nginx二进制包就已经内建了QUIC和HTTP/3的支持。然而这些新支持的协议目前仍处于实验性...
2024-06-27 电脑知识
112

HTTP/3协议是什么?HTTP/3对比HTTP/2协议有哪些优势和区别?
HTTP/3,作为最新一代的HTTP协议,它的出现旨在进一步提升网络性能,降低延迟,并为用户提供更加丰富和高效的服务体验。在这篇文章中,ZHANID将深入探讨HTTP/3与HTTP/2之间的...
2024-06-27 电脑知识
108