- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章HTTPS的七个误解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
误解七:https无法缓存 。
许多人以为,出于安全考虑,浏览器不会在本地保存https缓存。实际上,只要在http头中使用特定命令,https是可以缓存的.
微软的ie项目经理eric lawrence写道:
"说来也许令人震惊,只要http头允许这样做,所有版本的ie都缓存https内容。比如,如果头命令是cache-control: max-age=600,那么这个网页就将被ie缓存10分钟。ie的缓存策略,与是否使用https协议无关。(其他浏览器在这方面的行为不一致,取决于你使用的版本,所以这里不加以讨论。)" 。
firefox默认只在内存中缓存https。但是,只要头命令中有cache-control: public,缓存就会被写到硬盘上。下面的图片显示,firefox的硬盘缓存中有https内容,头命令正是cache-control:public.
误解六:ssl证书很贵 。
如果你在网上搜一下,就会发现很多便宜的ssl证书,大概10美元一年,这和一个.com域名的年费差不多。而且事实上,还能找到的ssl证书.
在效力上,便宜的证书当然会比大机构颁发的证书差一点,但是几乎所有的主流浏览器都接受这些证书.
误解五:https站点必须有独享的ip地址 。
由于ipv4将要分配完毕,所以很多人关心这个问题。每个ip地址只能安装一张ssl证书,这是毫无疑问的。但是,如果你使用子域名通配符ssl证书(wildcard ssl certificate,价格大约是每年125美元),就能在一个ip地址上部署多个https子域名。比如,https://www.httpwatch.com和https://store.httpwatch.com,就共享同一个ip地址.
另外,ucc(统一通信证书,unified communications certificate)支持一张证书同时匹配多个站点,可以是完全不同的域名。sni(服务器名称指示,server name indication)允许一个ip地址上多个域名安装多张证书。服务器端,apache和nginx支持该技术,iis不支持;客户端,ie 7+、firefox 2.0+、chrome 6+、safari 2.1+和opera 8.0+支持.
误解四:转移服务器时要购买新证书 。
部署ssl证书,需要这样几步:
1. 在你的服务器上,生成一个csr文件(ssl证书请求文件,ssl certificate signing request).
2. 使用csr文件,购买ssl证书.
3. 安装ssl证书.
这些步骤都经过精心设计,保证传输的安全,防止有人截取或非法获得证书。结果就是,你在第二步得到的证书不能用在另一台服务器上。如果你需要这样做,就必须以其他格式输出证书.
比如,iis的做法是生成一个可以转移的.pfx文件,并加以密码保护.
将这个文件传入其他服务器,将可以继续使用原来的ssl证书了.
误解三:https太慢 。
使用https不会使你的网站变得更快(实际上有可能,请看下文),但是有一些可以大大减少额外开销.
首先,只要压缩文本内容,就会降低解码耗用的cpu资源。不过,对于当代cpu来说,这点开销不值一提.
其次,建立https连接,要求额外的tcp往返,因此会新增一些发送和接收的字节。但是,从下图可以看到,新增的字节是很少的.
第一次打开网页的时候,https协议会比http协议慢一点,这是因为读取和验证ssl证书的时间。下面是一张http网页打开时间的瀑布图.
同一张网页使用https协议之后,打开时间变长了.
建立连接的部分,大约慢了10%。但是,一旦有效的https连接建立起来,再刷新网页,两种协议几乎没有区别。先是http协议的刷新表现:
然后是https协议:
某些用户可能发现,https比http更快一点。这会发生在一些大公司的内部局域网,因为通常情况下,公司的网关会截取并分析所有的网络通信。但是,当它遇到https连接时,它就只能直接放行,因为https无法被解读。正是因为少了这个解读的过程,所以https变得比较快.
误解二:有了https,cookie和查询字符串就安全了 。
虽然无法直接从https数据中读取cookie和查询字符串,但是你仍然需要使它们的值变得难以预测.
比如,曾经有一家英国银行,直接使用顺序排列的数值表示session id
黑客可以先注册一个账户,找到这个cookie,看到这个值的表示方法。然后,改动cookie,从而劫持其他人的session id。至于查询字符串,也可以通过泄漏.
误解一:只有注册登录页,才需要https 。
这种想法很普遍。人们觉得,https可以保护用户的密码,此外就不需要了。firefox浏览器新插件firesheep,证明了这种想法是错的。我们可以看到,在twitter和facebook上,劫持其他人的session是非常容易的.
咖啡馆的免费wifi,就是一个很理想的劫持环境,因为两个原因:
1. 这种wifi通常不会加密,所以很容易监控所有流量.
2. wifi通常使用nat进行外网和内网的地址转换,所有内网客户端都共享一个外网地址。这意味着,被劫持的session,看上去很像来自原来的登录者.
以twitter为例,它的登录页使用了https,但是登录以后,其他页面就变成了http。这时,它的cookie里的session值就暴露了.
也就是说,这些cookie是在https环境下建立的,但是却在http环境下传输。如果有人劫持到这些cookie,那他就能以你的身份在twitter上发言了.
原文:http://blog.httpwatch.com/2011/01/28/top-7-myths-about-https/ 译文:http://www.ruanyifeng.com/blog/2011/02/seven_myths_about_https.html 译者: 阮一峰 。
最后此篇关于HTTPS的七个误解的文章就讲到这里了,如果你想了解更多关于HTTPS的七个误解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
所以我实际上正在阅读有关用于删除对象属性的“delete”方法的文档,并且我偶然发现了这个“此外,您不能删除使用 var 关键字声明的全局对象的属性。” 所以我真正理解的是:假设你创建了一个数组: v
我目前正在学习 Javascript,我想知道为什么下面的代码会执行“console.log('why')”。我认为“变量”(var、let、const)仅存储信息,不能自行执行。我不希望以下内容实际
在许多博客和引用文献中,我读到了有关冲洗刷新记录的信息,其中有很多信息会引起头痛和一些误解: 是否为复制的碎片保留了事务日志?为什么? 如果GET /_cat/allocation包含转记录? 超过磁
我有下一个循环: rolling_average_delta_follower=[]; followers=[32,34,36,38,40,42,44,46,48,50,52,54,5
我遇到了多处理问题;我在 linux 2.6.36 上使用 python2.7。我知道使用更高级别的模块或库会容易得多,但我正在尝试使用较低级别的函数(os.fork() 和 os.exec*)以确保
有人可以向我解释一下,为什么这段代码不起作用。我正在浏览周围的一些问题,但找不到答案。可能是因为(大量)缺乏知识。 感谢您提供的任何帮助。 char** sentence = malloc(min);
我的目标是我想用一些 java 代码登录到一个站点,并在登录后做一些工作。(为了编写一些 java cooking 处理,我首先需要了解这一切实际上是如何工作的)问题是我不太清楚如何管理 cookie
给定以下非常简单的结构: struct A { int a; double b; }; (使用 Mac OS 10.9 - Xcode) 结构的大小是 16。我不明白为什么。为什么不是
我刚刚下载了基于 ASP.NET 5 的 music store (microsoft sample projct) 源代码。我不明白为什么 Microsoft 的开发人员在 Controller 中
Closed. This question is not reproducible or was caused by typos。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-to
我正在阅读 this doc并看到以下片段: The := syntax is shorthand for declaring and initializing a variable, e.g. fo
我在理解描述的 MixColumns 步骤时遇到问题 here . 我知道扩散,这一切都是有道理的,因为它指出每列都被视为多项式并乘以 GF(2^8) 的模。 但是..乘以GF(2 ^ 8)。尽管域仍
我尝试自定义HTML文件输入并编写了最简单的jquery API函数: (function($) { $.fn.selectFileInputGUI = function() {
我对 SSL/TLS 有一个根本性的误解,希望能得到澄清。 按照我的理解,当我获得网站证书时,它包含我的所有信息,并由我的证书颁发机构(VeriSign 或其他任何人)签名。当有人从我的网站请求使用
我们在代码中有一个 NamedTuple,如下所示: from typing import NamedTuple class StandardParameters(NamedTuple): o
我有一个问题,我需要你的帮助: 我正在制作一个 Web 应用程序来访问我需要在类似( ListView 或 DataList )这样的工具中显示他们的员工列表,以直接绑定(bind)数据库中的数据,并
我知道根是: 静态字段 方法参数 本地领域 f-queue 也包含一个指向“将要完成的”对象的指针 cpu 寄存器 <=??? 现在让我们谈谈寄存器。 它们可以包含的代码如下: mov bx, 003
官方例子Timer组件使用this.interval var Timer = React.createClass({ getInitialState: function() { retur
使用 PostGIS 我有两个表,第一个包含 250 个城市的边界,第二个包含世界上所有国家/地区的边界。 我试图影响每个城市所属的国家/地区。下面的查询可以让我得到我想要的结果。 SELECT DI
我正在准备数据库和 SQL 考试,并且正在解决一个练习: 我们有一个包含 4 个表的数据库,代表一家人力资源公司。这些表格是: applicant(a-id,a-name,a-city,years-
我是一名优秀的程序员,十分优秀!