当前位置:  开发笔记 > 编程语言 > 正文

你可以在SSL上使用gzip吗?和连接:Keep-Alive标题

如何解决《你可以在SSL上使用gzip吗?和连接:Keep-Alive标题》经验,为你挑选了3个好方法。

我在这里评估安全(SSL)Web应用程序的前端性能,我想知道是否可以通过SSL压缩文本文件(html/css/javascript).我已经做了一些谷歌搜索,但没有找到任何与SSL特别相关的内容.如果可能的话,因为响应也被加密,它是否值得额外的CPU周期?压缩响应会影响性能吗?

此外,我想确保我们保持SSL连接活着,所以我们不会一遍又一遍地进行SSL握手.我没有在响应标头中看到Connection:Keep-Alive.我确实看到Keep-Alive:115在请求标题中,但这只是保持连接活动115毫秒(似乎应用服务器在处理单个请求后关闭连接?)您不希望服务器设置只要会话不活动超时,响应头是什么?

我知道浏览器不会将SSL内容缓存到磁盘,所以即使没有任何变化,我们也会在后续访问中反复提供相同的文件.主要的优化建议是减少http请求的数量,缩小,将脚本移动到底部,图像优化,可能的域分片(尽管需要权衡另一个SSL握手的成本),这种性质的东西.



1> SimonJ..:

是的,可以通过SSL使用压缩; 它发生在数据加密之前,因此可以帮助缓慢的链接.应该指出的是,这是一个坏主意:这也会打开一个漏洞.

在初始握手之后,SSL的开销比许多人想象的要少 - 即使客户端重新连接,也有一种机制可以在不重新协商密钥的情况下继续现有会话,从而减少CPU使用并减少往返次数.

但是,负载平衡器可以使用延续机制:如果请求在服务器之间交替,则需要更多的完全握手,这会产生明显的影响(每个请求约几百毫秒).配置负载均衡器以将来自同一IP的所有请求转发到同一应用服务器.

您使用的是哪个应用服务器?如果它不能被配置为使用保持活跃,压缩文件等等再考虑把它后面的反向代理是可以(并且当你在它,放松与静态内容发送缓存头- HttpWatchSupport已连结文章有关于那个方面的一些有用的提示).

(*SSL硬件供应商会说"高达5倍的CPU",但谷歌的一些人报告说,当Gmail默认情况下转为SSL时,它只占CPU负载的1%左右)



2> Neil McGuiga..:

    您可能永远不应该使用TLS压缩.一些用户代理(至少是Chrome)无论如何都会禁用它.

    您可以有选择地使用HTTP压缩

    你总是可以缩小

    我们来谈谈缓存

我将假设您正在使用HTTPS Everywhere样式的网站.

场景:

    像css或js这样的静态内容:

    使用HTTP压缩

    使用缩小

    缓存期长(如一年)

    etag只是勉强有用(由于长缓存)

    在HTML中的URL中包含指向此资产的某种版本号,以便您可以缓存

    带有ZERO敏感信息的HTML内容(如"关于我们"页面):

    使用HTTP压缩

    使用HTML缩小

    使用短暂的缓存期

    使用etag

    带有任何敏感信息的HTML内容(如CSRF令牌或银行帐号):

    没有HTTP压缩

    使用HTML缩小

    Cache-Control: no-store, must-revalidate

    etag在这里毫无意义(由于重新验证)

    会话超时后重定向页面的一些逻辑(考虑多个选项卡).如果有人按下浏览器的"后退"按钮,则由于缓存标头而不显示敏感信息.

您可以对敏感数据使用HTTP压缩IF:

    你永远不会在响应中返回用户输入(有一个搜索框?不要使用HTTP压缩)

    或者您确实在响应中返回用户输入,但随机填充响应


**请勿使用刷新标头**将用户发送到登录页面.实际上,您可以让用户永远登录****.场景:假设会话在20分钟不活动后到期.用户在下午1点打开浏览器选项卡A,然后在下午1:10打开另一个选项卡B. 在下午1:21,选项卡A将刷新,但他没有注销,因为选项卡B将其活动超时重置为1:30.这两个标签将永远来回,刷新页面并保持用户登录.否则好帖子:p

3> 小智..:

通过SSL使用压缩可以防止漏洞,例如BREACH,CRIME或其他选择的纯文本攻击.

您应该禁用压缩,因为SSL/TLS目前无法减轻这些长度的oracle攻击.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有