HTTPS部署锦囊

HTTPS部署锦囊 

1何时及为什么要部署HTTPS

 

只要您的网站有任何非公开信息,您就应当部署HTTPS,包括那些需要登陆的网站——毕竟,如果信息是公开的,根本就无需要求登陆。那些只有管理员才能登陆的网站,比如典型的Wordpress站点,也需要HTTPS。



部署HTTPS是必须的,因为如果没有它,即使有人在被动监听,也就是监听而不操控网络流量,他也能顺着HTTP传输读取到密码或认证令牌等机密信息。特别是公共热点通常没有使用任何WiFi加密,因此监听所有流量只不过是小菜一碟。这种情况在酒吧、宾馆、火车和其他公共场所非常普遍。换句话说,如果你的用户某些时候从公共热点访问你的网站,而你又没有使用HTTPS,那么任何在公共热点附近的人都可以监听用户所有的流量。这并不是监听可能发生的唯一情况,但它确实很容易做到。

 

2.如果我只是在登陆页面使用HTTPS呢?

 

别这么干。只在登陆页面使用HTTPS固然可以防止用户的密码被窃取,但这只是问题的一部分。

 

首先,您的网站上使用HTTPS的部分越少,进行主动拦截就越容易:您的登陆链接可能指向一个HTTPS URL,但如果我在用户点击之前就改变了链接,HTTPS就没法帮到你了。部分使用HTTPS也将面临被动拦截的风险。下面是一个长长的解释哦,感兴趣的朋友继续滑动页面哈!

 

验证用户名和密码只是web上用户身份验证的一部分:我们还需要记住某个特定用户已经过验证和用于验证的账户。最常见的办法是使用session cookies,这通常意味着浏览器会将一个长的随机字符串,也就是session ID,存储在一个cookie中,例如在PHP中可以使用PHPSESSID来实现。服务器端的数据库知道那个随机字符串对应某个特定的session,而那个session又对应着某个特定的已验证用户。如果我用某种方式得到了你的session ID,那么当你登陆之后,我就获得了你所有的权限,这和我知道你的密码没什么两样。

 

考虑到这一风险,session ID都非常长且随机,并且它的生命期是有限的,这就意味着我没法靠猜测来获知它,因此session ID是足够安全的。但是,由于cookie的运作方式,浏览器每次向网站发请求时都会包含cookie信息。所以,即使已经登陆很久了,我请求的每个网页,哪怕通常情况下是公开的网页,也会导致我的session cookie被浏览器发送出去。如果这时有人在监听,他们依然可以篡改我的账户。

 

如果您仅仅把网站中涉及管理员的部分置于SSL的保护之下,同样的情况也可能发生:当你登陆并随后访问非SSL的公开内容时,浏览器也会发送session cookie。

 

简而言之:由于允许访问用户账户的sessioncookie在每一次请求中都会被发送,仅仅保障登陆页面的安全是绝对不够的。

 

3.我该如何更好地启用HTTPS?

 

强制使用HTTPS

 

一些网站购买了SSL证书并将其配置到Web服务器上,以为这就算完事儿了。但这只是表明您启用了HTTPS选项,而用户很可能不会注意到。为确保每个用户都从HTTPS中受益,你应该将所有传入的HTTP请求重定向至HTTPS。这意味着任何一个访问你的网站的用户都将自动切换到HTTPS,从那以后他们的信息传输就安全了。

 

但上述做法还是留下了一个空子:当用户第一次向你的网站发送请求时,他们使用的是普通HTTP,而那时他们可能就已经在传输机密信息了。上述做法还留下了一个“中间人攻击”漏洞(man-in-the-middle hole)。

 

严格传输安全协议

 

为进一步加强控制,请启用HTTP严格传输安全协议。这是一种可由服务器发送的特殊的头信息(header),它的含义是:在设定的时限内,你不能通过普通HTTP访问网站,也不能在证书不可靠时通过HTTPS访问网站。二级域名也可以选择包含HSTS。

 

HSTS是一种简单的服务器头信息,且容易配置。但是要注意在时限结束之前无法撤销设定,因此不要把时限设置得太长。你应该同时使用HSTS和HTTPS重定向,而不是用前者取代后者。

 

安全的cookies



Cookies,包括sessioncookie,有一个可选的安全标记。它大致的含义是:“不要用普通HTTP连接发送这个cookie” 启用这个安全标记,你的cookie就不会被浏览器的初始HTTP请求发送出去,直到连接切换为HTTPS且不再会被监听为止。

 

4.我可以只为已验证用户部署SSL吗?

 

不可以

一旦你遵循了上述指南,当用户发起普通HTTP连接时,你没法知道他们是否经过了验证。关键在于:除非用户已经连上了SSL,否则他们不应该传输任何机密信息,比如session cookie。

 

虽然我还是有很多方法来解决这些安全问题,但它们可能会在某个环节上失效。现SSL数字证书的成本也不是很高,所以采用其他方案其实并不划算。

 

以上关于HTTPS部署问题的解答,小编叙述的会有点繁冗,希望能帮助到大家。微信朋友们可以收藏起来,慢慢看哈!

 

出品人:亚洲诚信

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值