网站优化案例

电商网站兼顾安全与性能的踩坑小结

来源:本站日期:2018-2-2
  • 系统改造。原有系统想要支持 HTTPS,必须进行改造,首先要建立 HTTPS 接入层,也就是开通 443 端口,让所有的应用系统支持 HTTPS 访问。

    在此基础上做页面资源替换,解决当一个 HTTPS 页面出现 HTTP 请求时就会出现错误的问题。做完这两件事,CDN 上证书的处理、HTTPS 测试方案等问题也就迎刃而解。

  • 性能优化。做系统改造,增加两次 TLS 握手,必然会对性能造成一定的开销和损失,如何去弥补性能的损失,达到性能和安全兼顾呢?性能优化部分包含若干优化点,下文会详细展开。

  • 灰度上线。这部分是时间花费最多的,HTTPS 一步步上线的过程中,踩坑最多,其中部分是前面没有发现的问题。

    这证明不能一次性将整个全站、全地区、全用户一次性堆成 HTTPS,可以根据流量所处的运营商和城市及用户级别去做灰度上线。

01、HTTPS 接入层定义

系统改造的头等大事是开通 443 端口,成熟的网络系统会包含 CDN、硬件负载均衡、应用防火墙、Web 服务器、应用服务器,最后到数据层。难道整个链路都要做 HTTPS?在每层都增加 SSL 握手消耗吗?答案是否定的。

所以,应该尽早完成 SSL 握手,做 SSL 过程中首要考虑的是 HTTPS 接入层的定位。

02、页面资源替换

第一步,理解 Mixed Content

对于一个页面而言,请求页面的请求是用 HTTPS 加载,一旦内部页面元素有 HTTP 的性质,这时 RFC 标准里就会出现一个错误,叫 Mixed Content(混淆错误)。

所以,如果要加载一个安全的 HTTPS 页面,就不应该在其中混淆 HTTP 请求。

第二步,// 替换 http://

用 // 替换 http://,这样就可以让页面所有的元素做一个适配,去遵循原来的请求。

首页
电话
短信
联系