随着网络技术手段不断地更新迭代,互联网安全对于企业和个人的重要性都越来越高。因此越来越多的服务商都开始偏向为用户提供更安全的在线内容访问。

中间人攻击

为了保障网站内容安全,诞生了不少加密方式。目前应用最为广泛的加密方式是 TLS(安全传输层协议),它脱胎自广为人知的 SSL(安全套接字协议),并和 SSL 一起组成了 SSL/TLS 加密,可以让 HTTP 变身为 HTTPS,为用户和网站提供安全的数据传输。

正常来讲,使用 HTTPS 和可靠的 SSL/TLS 证书访问网站时,加密的传输是安全的。但是因为早期认证机构容易被黑客攻击,进而导致证书安全性漏洞,同时一些常规使用习惯也可能造成安全漏洞,比如我们在输入网址时,并不会输入包含加密协议 https:// 的完整 URL,而是只输入网站网址,而浏览器的自动访问则会访问不安全的 http://。这些存在的漏洞为中间人攻击提供了便利。

中间人攻击表面上看是系统 A 与系统 B 建立加密连接,但是实际上数据流会被第三方重定向,让加密连接从系统 A 运行到系统 C,然后才重定向到系统 B。这让系统 C 的控制者(通常是攻击者)可以完整地查看、记录以及操纵数据流量。攻击者还通过这种方式将系统 C 作为网络服务器呈现给系统 A,并给用户端呈现错误的浏览页面。这种攻击在银行或者电商行业会直接影响用户在线交易,给用户造成严重损失。

除去证书本身的问题,一些粗心大意的使用习惯也很容易造成安全漏洞。比如现在很多公共场合都会提供公共 WLAN,我们已经习惯链接并使用,不会去检查这个 Internet 是谁提供的。黑客可以将自己的计算机设置为热点,并轻易获得链接这个热点的用户的全部数据流,如果正好有人用这个网络链接过银行等业务,那黑客很容易通过这个获取用户网银密码,造成财务损失。。

因此,互联网工程任务组(IETF)在 2012 年提出了针对该安全性问题的一种解决方案:在 RFC 6797 中指定了 HTTPS 扩展的 HTTP 严格传输安全协议(HSTS)。

什么是 HSTS

HSTS(HTTP Strict Transport Security,HTTP 严格传输安全协议)是一种安全机制,旨在保护 HTTPS 连接免受中间人攻击和会话劫持。它让网站管理员在 HTTPS 的基础上,通过 HTTP 头信息向浏览器发送信号,在一个时间段内以 SSL / TLS 加密的形式检索网站。

这个 HTTP 头信息在服务端显示为:Strict-Transport-Security,它包含强制性的信息 max-age,也包含了可选参数 includeSubDomains 和 preload 方便配置:

  • max-age: 指 HSTS 功能生效的时间,以秒为单位。例如 31536000 秒代表一年。

  • includeSubDomains: 如果指定,则表示域名(例如:upyun.com)对应的每个子域名(例如:www.upyun.com 或 123.example.upyun.com),浏览器在访问时也都会强制采用 HTTPS 进行访问。

  • preload: 如果指定,则表示此域名同意申请加入由 Google 发起的 Preload List,申请地址[https://hstspreload.org/]。

在服务端配置完成头信息后,当互联网用户首次访问网站时,浏览器将从 Strict-Transport-Security 头信息中获取以下指令:

  • 指向相应网站的所有未加密链接都必须被加密链接覆盖(http:// 到 https://)。

  • 如果不能保证连接的安全性(例如:证书无效),则必须终止该连接。同时向用户显示错误消息。

如何开启 HSTS

如果是对安全性要求较高的网站,一般都会选择开启 HSTS 。

但是 HSTS 并不是随意开启的,它需要支持它的浏览器。目前市场上支持 HSTS 的浏览器如下:(对于那些不支持的浏览器,会忽略此响应头,对用户的访问无影响,可以不用担心)

而具体开启 HSTS 则可以登陆又拍云控制台,依次进入:服务 > 功能配置 > HTTPS > HSTS,点击管理进行配置开启。

又拍云自 17 年起就已经支持配置 HSTS,配置步骤简单,操作方便。但是这里需要特别提醒的是,如果有参数设置不当可能会导致网站无法访问,大家如果遇到问题可以直接联系我们的客服小姐姐哦~

HTTPS 网站的预加载列表

当然光靠 HSTS 并不是万无一失的,因为 HSTS 的响应头是由服务器返回的,需要用户先发起访问才能获取到这个响应头。获取响应头后才会进行强制 HTTPS 访问操作。这也就意味着每次访问还是容易受到攻击风险。

为尽可能的减小这种风险,目前市面上所有的浏览器都加入了 Google 提供的 HSTS Preload List。只要加入到这个列表中,所有的通过浏览器访问请求都会强制走 HTTPS,在很大程度上可以杜绝“第一次”访问的劫持,最大限度地提高 HTTPS 访问的安全性。

如果你需要将自己的网站加入 HSTS Preload ,那必须确保符合如下基本要求:

  • 所有网站页面都必须使用有效的 SSL 证书

  • HTTP URL 必须定向到同一主机的 HTTPS URL

  • 所有子域(包括 www 子域)必须支持 HTTPS 且可用

  • 必须通过具有以下参数的域名来传递 HSTS 头信息:

  • 网站需要始终满足上诉要求,否则会被自动删除

在信息安全越来越重要的今天,及时更新网站的安全手段,维护网站和用户的安全,避免因一时的疏忽造成损失才是最好的选择。

全站 HTTPS 就一定安全了吗?的更多相关文章

  1. 全站 HTTPS 来了

    !版权声明:本文为腾讯Bugly原创文章,转载请注明出处腾讯Bugly特约作者:刘强 最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 ...

  2. 全站 HTTPS 来了(转载)

    转载:本文为腾讯Bugly原创文章. 最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护.仔细观察,会发现这些网站已 ...

  3. ASP.NET MVC 部署全站HTTPS

    什么是全站HTTPS 全站HTTPS就是指整个网站的所有页面,所有资源全部使用HTTPS链接. 当用户的某个请求是明文的HTTP时,应该通过HTTP状态码301永久重定向到对应的HTTPS链接. 为了 ...

  4. 全站HTTPs,没那么简单

    “全站 HTTPs”俨然成了目前的热门话题,很多网站都在摩拳擦掌要实行全站 HTTPs.凑巧,我们(沪江)也在推行这个计划. 一开始大家想得都很简单,把证书购买了.配好了,相应的路径改一改,就没有问题 ...

  5. 关于全站https必要性http流量劫持、dns劫持等相关技术

    关于全站https必要性http流量劫持.dns劫持等相关技术 微信已经要求微信支付,申请退款功能必须12月7号之前必须使用https证书了(其他目前为建议使用https),IOS也是2017年1月1 ...

  6. 【转】互联网全站HTTPS的时代已经到来

    原文地址:http://blog.csdn.net/luocn99/article/details/39777707 前言 我目前正在从事HTTPS方面的性能优化工作.在HTTPS项目的开展过程中明显 ...

  7. 【转贴】全站 HTTPS 来了

    http://geek.csdn.net/news/detail/48765 作者:腾讯TEG架构平台部静态加速组高级工程师 刘强 最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部 ...

  8. 转《本文为腾讯Bugly原创文章 ---全站 HTTPS 来了》

    最近大家在使用百度.谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护.仔细观察,会发现这些网站已经全站使用 HTTPS.同时,iOS ...

  9. 跑步进入全站 HTTPS ,这些经验值得你看看

    随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.就在前几天,免费提供证书服务的 Let’s Encrypt 项目也正式开放测试,HTTPS 很快就会成为 WE ...

  10. 全站 HTTPS 没你想象的那么简单

    对自己无知这件事本身的无知真的挺可怕 认知偏差现象一直存在于我们每个人身上,谁也避免不掉,不过是有的人了解这件事儿,有的人不怎么知道而已,这就产生了「无知而不自知」的认知偏差.当然,这时候你自己忽悠自 ...

随机推荐

  1. 字节首推Java成长笔记:(原理+应用+源码+调优全都有)直接复盘

    今天这篇文章我为了帮助小伙伴们快速构建Java技术栈,这份笔记包含了Java技术点的答案,面经,笔记,希望大家看完可以在短期内容快速面试复盘,达到事半功倍! 本来想将文件上传到开源网站上去,但是文件太 ...

  2. Kafka源码分析(三) - Server端 - 消息存储

    系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 业务模型 1.1 概念梳理 1.2 文件分析 1.2.1 数据目录 1.2.2 . ...

  3. jmeter--文件上传和下载

    文件下载 文件下载的method一般是get.本例中导出excel文件. 下载文件如果要求下载到本地,需要另写脚本.采用jsr223或者beashell PostProcessor都可以. 代码如下: ...

  4. Java 提效神器 Stream 的冷门技巧

    Stream 使用这个方法创建一个 Stream 对象. new ArrayList<>().stream() Filter 过滤器,里面传递一个函数,这个函数的返回结果如果为 true ...

  5. 对图数据库(Nebula)进行单元测试时的坑

    通过Nebula提供的Java Client完成代码开发后,使用JUnit对其进行单元测试,需要注意几点: 一.不确定性 1.Nebula创建图空间是异步实现的,Nebula将在下一个心跳周期内(默认 ...

  6. unity的安装,配置,及问题

    下载unity 在官网下载unity unity有三个版本,个人版免费,pro和专业版收费. 个人版 在导出exe文件时不能去掉水印片头.其他版本可以. 地址[https://store.unity. ...

  7. 8、ITSM基本概念(2)

    6.流程和职能: 7.故障管理: (1)故障管理的输入和输出: (2)故障管理的目标: 优先解决影响度大的事件: (3)故障管理的指标: (4)故障管理的流程: 8.问题管理: (1)问题管理的输入和 ...

  8. 7.1、controller节点配置

    0.配置openstack版本yum源: yum install centos-release-openstack-rocky 1.安装 OpenStack 客户端: yum install pyth ...

  9. [Django REST framework - 自动生成接口文档、分页]

    [Django REST framework - 自动生成接口文档.分页] 自动生成接口文档 # 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 # 公司里主流 -后端,使用w ...

  10. drf-路由和认证

    目录 一.路由Routers SimpleRouter DefaultRouter action的使用 二.认证 认证的写法 认证源码分析 认证组件的使用 一.路由Routers 在 Rest Fra ...