HTTPS的七个误解
文章关于HTTPS的七大误解的
一、误解破解:HTTPS无法缓存
许多人对HTTPS存在一个误解,认为由于安全因素,浏览器不会在本地保存HTTPS缓存。实际上,只要HTTP头部指令允许,所有版本的浏览器都可以缓存HTTPS内容。例如,使用Cache-Control: max-age=600的头部指令,可以让网页在IE中被缓存10分钟。Firefox也会根据Cache-Control: Public的头部指令,将HTTPS缓存写入硬盘。
二、误解破解:SSL证书昂贵
实际上,现在有很多便宜的SSL证书可供选择,价格大约在每年10美元左右,这与域名的年费相差无几。虽然便宜的证书可能在效力上略逊于大型机构颁发的证书,但几乎所有的主流浏览器都接受这些经济实惠的证书。
三、误解破解:HTTPS站点必须拥有独立IP地址
随着技术的发展,这一问题正在逐步得到解决。使用子域名通配符SSL证书(wildcard SSL certificate),可以在一个IP地址上部署多个HTTPS子域名。UCC(统一通信证书)技术也支持一张证书匹配多个站点。虽然IIS不支持此技术,但大多数现代浏览器都能够处理多个域名在一个IP地址上的情况。
四、误解破解:转移服务器时需购买新证书
SSL证书的部署包含生成CS件、购买证书和安装证书等步骤,这确保了传输的安全性,防止证书被非法获取或截取。如果你需要在另一台服务器上使用证书,可以通过生成一个可转移的.pfx文件并设置密码保护来实现。这样,你就可以将文件传输到其他服务器并继续使用原有的SSL证书。
五、误解破解:HTTPS太慢
虽然首次加载HTTPS网页可能会比HTTP慢,因为需要读取和验证SSL证书的时间,但一旦有效的HTTPS连接建立,刷新网页时两种协议几乎没有区别。通过压缩文本内容和使用有效的缓存策略,可以大大减少HTTPS的额外开销。在某些内部局域网环境中,由于网关直接放行HTTPS连接,可能会感觉到HTTPS甚至比HTTP更快。
六、误解五:所有HTTPS站点都慢
实际上,HTTPS的速度取决于多种因素,包括服务器的性能、网络状况、证书的类型以及优化策略等。通过合理的配置和优化,HTTPS可以拥有与HTTP相似的加载速度。一些新的技术如HTTP/2和TLS 1.3等也有助于提TTPS的性能。
七、误解六:SSL证书必须每年更新
这是一个常见的误解。虽然许多SSL证书确实有一年的有效期,但并不是所有的SSL证书都必须每年更新。一些高级别的证书,如EV SSL证书,可能具有更长的有效期。如果你选择了适当的证书类型并正确配置了自动续订选项,那么证书的更新可以自动化进行,无需每年手动更新。重要的是确保你的证书是由受信任的证书颁发机构(CA)签发的,并且已经正确安装和配置在你的服务器上。打破误解:HTTPS、Cookie和查询字符串的安全问题
仅仅因为启用了HTTPS,并不意味着Cookie和查询字符串就绝对安全。尽管HTTPS加密了数据,使得未经授权的用户无法直接读取其中的内容,但Cookie和查询字符串的安全性仍需我们关注。
以一家英国银行为例,即使使用了HTTPS,由于其session id以简单的数值序列呈现,黑客仍有可能通过修改cookie来劫持他人的session。查询字符串同样存在被泄露的风险。
另一个常见的误解是,只有注册登录页面才需要HTTPS的保护。这种观念已经过时。如今,许多浏览器插件的存在,如Firefox的新插件,已经证明这一想法的错误。在公共WiFi环境下,如咖啡馆的免费WiFi,由于其通常不加密且使用NAT进行地址转换,使得session劫持变得轻而易举。
以Twitter为例,虽然其登录页面使用了HTTPS,但在用户成功登录后,浏览其他页面时却可能使用HTTP。这时,cookie中的session信息就可能暴露在外。这意味着,尽管这些cookie是在HTTPS环境下生成,但在HTTP环境下传输时,仍有可能被劫持。一旦cookie被劫持,黑客就能以你的身份在Twitter上发布内容。
我们不能仅因为启用了HTTPS就忽视了Cookie和查询字符串的安全性。我们需要确保这些值的难以预测性,并时刻警惕任何可能的安全风险。网络安全需要我们每个人的共同努力,时刻保持警惕,不断更新知识,才能更好地保护我们的数据安全和隐私权益。
原文来源:
译文来源: 译者 阮一峰(略有改动以适应现代语境)
编程语言
- HTTPS的七个误解
- JS事件流与事件处理程序实例分析
- Vue的MVVM实现方法
- Zend Framework入门知识点小结
- JavaScript事件用法浅析
- 3分钟读懂移动端rem使用方法(推荐)
- 获取WebService的请求信息方法实例
- js实现格式化金额,字符,时间的方法
- JS代码随机生成姓名、手机号、身份证号、银行卡
- js实现大转盘抽奖游戏实例
- 基于PHP开发中的安全防范知识详解
- MySQL添加外键时报错:1215 Cannot add the foreign key
- Asp.net Core 3.1基于AspectCore实现AOP实现事务、缓存拦
- Node.js的Mongodb使用实例
- php实现映射操作实例详解
- 开启BootStrap学习之旅