让浏览器不再显示 https 页面中的 http 请求警报,所有静态资源强制转https
2017-12-13 10:36
429 查看
HTTPS 是 HTTP over Secure Socket Layer,以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 http 请求,一旦出现就是提示或报错:
HTTPS改造之后,我们可以在很多页面中看到如下警报:
很多运营对 https 没有技术概念,在填入的数据中不免出现 http 的资源,体系庞大,出现疏忽和漏洞也是不可避免的。
在我们nginx服务器的响应头中加入:
参考编程技术
我们的页面是 https 的,而这个页面中包含了大量的 http 资源(图片、iframe等),页面一旦发现存在上述响应头,会在加载 http 资源时自动替换成 https 请求。可以查看 google 提供的一个 demo:
不过让人不解的是,这个资源发出了两次请求,猜测是浏览器实现的 bug:
当然,如果我们不方便在服务器/Nginx 上操作,也可以在页面中加入 meta 头:
目前支持这个设置的还只有 chrome 43.0,不过我相信,CSP 将成为未来 web 前端安全大力关注和使用的内容。而 upgrade-insecure-requests 草案也会很快进入 RFC 模式。
参考编程技术
从 W3C 工作组给出的 example,可以看出,这个设置不会对外域的 a 链接做处理,所以可以放心使用。
技术交流学习或者有任何问题欢迎加群
编程技术交流群 : 154514123
Java技术交流群 : 6128790
Mixed Content: The page at ‘https://www.tqcto.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 的资源,体系庞大,出现疏忽和漏洞也是不可避免的。
Nginx设置upgrade-insecure-requests
好在 W3C 工作组考虑到了我们升级 HTTPS 的艰难,在 2015 年 4 月份就出了一个 Upgrade Insecure Requests 的草案,他的作用就是让浏览器自动升级请求。在我们nginx服务器的响应头中加入:
add_header Content-Security-Policy upgrade-insecure-requests;
CSP设置upgrade-insecure-requests
header("Content-Security-Policy: upgrade-insecure-requests");
参考编程技术
我们的页面是 https 的,而这个页面中包含了大量的 http 资源(图片、iframe等),页面一旦发现存在上述响应头,会在加载 http 资源时自动替换成 https 请求。可以查看 google 提供的一个 demo:
不过让人不解的是,这个资源发出了两次请求,猜测是浏览器实现的 bug:
当然,如果我们不方便在服务器/Nginx 上操作,也可以在页面中加入 meta 头:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
目前支持这个设置的还只有 chrome 43.0,不过我相信,CSP 将成为未来 web 前端安全大力关注和使用的内容。而 upgrade-insecure-requests 草案也会很快进入 RFC 模式。
参考编程技术
从 W3C 工作组给出的 example,可以看出,这个设置不会对外域的 a 链接做处理,所以可以放心使用。
技术交流学习或者有任何问题欢迎加群
编程技术交流群 : 154514123
Java技术交流群 : 6128790
相关文章推荐
- 让浏览器不再显示 https 页面中的 http 请求警报
- 让浏览器不再显示 https 页面中的 http 请求警报
- 让浏览器不再显示 https 页面中的 http 请求警报
- 让浏览器不再显示 https 页面中的 http 请求警报
- 让 Chrome 不再显示 https 页面中的 http 请求警报
- 关于Ngnix配置HTTPS后,静态资源还是请求http
- swagger + tomcat http 遇到 ngnix 的 https 后 , 静态资源不显示
- j2ee的web项目,在浏览器中发起一个该项目中html页面的绝对地址,也是发起的一个http url请求,请求的响应报文的结果就是该html页面的所有html代码
- 在html的头部加入meta使得所有的资源请求由http请求转成https请求
- [分享黑科技]纯js突破localstorage存储上线,远程抓取图片,并转码base64保存本地,最终实现整个网站所有静态资源离线到用户手机效果却不依赖浏览器的缓存机制,单页应用最新黑科技
- 访问asp网站时,页面上显示请求的资源在使用中
- http转https后资源加载不显示
- 随笔 | Python的Flask强制使http跳转到https页面
- HttpClient模拟浏览器登录后发起请求(携带Cookie发请求)以及网页显示的事件过程
- HTTP请求:从浏览器地址栏输入url到页面显示的全过程(Complete Procedure of How an HTTP Request Works)
- Android WebView加载https页面不能正常显示资源问题
- 浏览器拦截跨域请求处理方法(已阻止跨源请求:同源策略禁止读取远程资源) 原文地址:http://my.oschina.net/lichaoqiang/blog/317823 在浏览器请求中,出现跨
- 强制https访问,在浏览器中输入http的访问地址自动转换为https,端口问题
- 【前端开发】合并多个前端静态资源文件,减少HTTP请求次数
- nginx中实现把所有http的请求都重定向到https