网站如何使用HTTPS如何防止网站被劫持?


相信大家对于HTTP与HTTPS协议都或多或少听说过 。HTTP协议在Web中的应用是十分广泛的 。只不过最近几年HTTPS慢慢火热起来了 。大到BAT这类企业的网站默认都是HTTPS协议 。小到一些个人博客网站也启用了HTTPS来尝鲜 。
我们都听人家说过 。HTTPS比HTTP要安全、防劫持 。那为什么HTTPS就能做到这点呢 。而HTTP就不行呢?
其实在HTTP协议中 。所有的数据都是明文传输的 。试想一下 。如果黑客拦截到了请求 。那所有的数据都可以直接看到 。很不安全 。HTTPS虽不能称之为绝对的安全 。但是一般黑客想劫持也很难 。因为HTTPS在HTTP的基础上再加了一个SSL层 。数据是加密传输的 。
常见的劫持手段有以下几种 。我来来详细看看HTTPS是如何规避的 。
1、DNS劫持 / 中间人劫持
有这样一个场景:我们访问 www.abc.com 时 。要先过DNS查找出此域名对应的IP地址 。假设DNS被人劫持了 。将 abc.com 这个域名本该绑定的IP(1.2.3.4)换成了黑客的服务器IP(5.6.7.8) 。那我们访问abc.com 时其实是和黑客的服务器进行通讯的 。黑客可以在服务器里做一些操作 。比如说伪造一个网站 。或者将用户请求再传到 www.abc.com 真实的服务器中 。以此来获取用户的敏感信息 。
上面这种场景一旦存在 。就构成了中间人攻击 。黑客通过劫持了DNS 。将用户的域名绑定到了一个非源站的IP上 。以此达到劫持的目的 。
这在HTTP协议下就直接被劫持了 。但在HTTPS协议下就不行 。因为黑客的服务器要提供一个CA证书 。这样才能保证客户端(即访客)和服务器间建立SSL连接 。而这个CA证书是由国际第三方机构颁发的 。无法伪造!如果黑客服务器做了自签名证书 。那访客在连接到黑客服务器时 。浏览器也会提示你网站证书不可靠 。如下图示:

网站如何使用HTTPS如何防止网站被劫持?

文章插图
就算继续访问 。内容在传输过程中是无法被解密的 。
请注意:大家千万不要安装一些不受信任的证书!如果安装了不受信任的证书 。那此证书颁发方就能解析你的HTTPS请求 。很危险 。
开启了HTTPS后 。就建议把HTTP协议给停了 。或者强制重定向到HTTPS协议 。
2、内容数据及流量劫持
前面说到了 。HTTPS在HTTP的基础上加了SSL层 。数据在传输过程中是加密的 。加密方式采取的是非对称加密 。安全系数很高 。所以在数据劫持上不太可能 。
在以前我们还经常看到这种现象 。浏览器里打开一个网页 。然后右下角弹出一个运营商推广的广告 。十分恶心 。这就是流量劫持 。如果用HTTPS协议则不会出现这种广告植入的情况了 。这也是由于HTTPS策略决定的 。比如说:
HTTPS协议的网站中无法引用HTTP协议的资源;
SSL协议提供数据加密与完整性校验 。确保了数据的机密性和完整性 。
其他观点:
HTTPS 。是HTTP over SSL的意思 。SSL协议是Netscape用于解决传输层安全问题的网络协议 。其核心是基于公钥密码学理论实现了对服务器身份认证、数据的私密性保护以及对数据完整性的校验等功能 。
网站服务器和客户端使用协商出的会话密钥对交互的数据进行加密/解密操作 。对于HTTP协议来说 。就是将HTTP请求和应答经过加密之后再发送到网络上 。
【网站如何使用HTTPS如何防止网站被劫持?】由此可见 。因为SSL协议提供了对服务器的身份认证 。所以DNS劫持导致连接错误服务器的情况将会被发现进而终止连接 。最终导致DNS挟持攻击无法实现 。此外SSL协议还提供数据的加密和完整性校验 。这就解决了关键信息被嗅探以及数据内容被修改的可能 。
其他观点:
HTTPS的话一般就是网站备案后 。申请免费的SSL证书或者购买SSL加密证书 。然后在NGINX或者其他分发代理请求的服务器中开启SSL加密访问 。关闭http这种明文访问 。以保证数据的安全 。
网站如何使用HTTPS如何防止网站被劫持?

文章插图

    推荐阅读