HTTPS 是 HTTP over Secure Socket Layer,以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 http 请求,一旦出现就是提示或报错:如图:
HTTPS改造之后,我们可以在很多页面中看到如下警报:
很多运营对 https 没有技术概念,在填入的数据中不免出现 http 的资源,体系庞大,出现疏忽和漏洞也是不可避免的。
CSP设置upgrade-insecure-requests
header("Content-Security-Policy: upgrade-insecure-requests");
我们的页面是 https 的,而这个页面中包含了大量的 http 资源(图片、iframe等),页面一旦发现存在上述响应头,会在加载 http 资源时自动替换成 https 请求。
当然,如果我们不方便在服务器/Nginx 上操作,也可以在页面中加入meta
头:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />