让 Chrome 不再显示 https 页面中的 http 请求警报
2015-09-07 14:20
701 查看
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 的资源,体系庞大,出现疏忽和漏洞也是不可避免的。
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:
不过让人不解的是,这个资源发出了两次请求,猜测是浏览器实现的 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 链接做处理,所以可以放心使用。
相关阅读
http://www.w3.org/TR/mixed-content/https://www.chromestatus.com/feature/6534575509471232
相关文章推荐
- 浅谈HTTP中Get与Post的区别
- 网络爬虫基本原理
- xUtils封装http各种操作
- ubuntu下tcpdump总结
- liunx下swf转换 相关问题____http://bbs.csdn.net/topics/390797316
- [文件系统]制作可运行的Linux-0.11 http://huqingyu.cnblogs.com/archive/2005/02/18/105589.html
- ufldl 深度学习入门 第一发:基于BP网络实现稀疏自编码器
- poj1637 Sightseeing tour 网络流 混合图的欧拉回路
- LXC网络配置实例
- Android基础入门教程——7.1.1 Android网络编程要学的东西与Http协议学习
- 计算机网络各层对应协议
- NodeJs http.get 方法请求时间过长问题处理!
- TCP/IP网络编程 学习笔记_14 --多种I/O函数(数据传输扩展)
- TCP/IP网络编程 学习笔记_14 --多种I/O函数(数据传输扩展)
- tcp/ip协议簇
- tcpdump追查问题
- openstack 网络相关问题的解决
- HttpURLConnection抛异常java.io.FileNotFoundException
- SOCKET&TCP
- 网络安全漏洞平台