安全太重要!各种大网站、小社区的用户数据泄露,天天有人被拖库,所以来和大家聊一聊安全吧,网络安全话题太大了,再缩小一下,那就 Web 方面的安全吧,毕竟我们现在每天都离不开 Web 应用了……
做开发大家都知道,当我们浏览网页时,由上至下,所有涉及到的服务组件基本分为三大块:
前端层,表层的第三方内容 --> Web 前端框架
浏览器层,Web 应用 --> Web 开发框架
数据服务层,Web 服务端 --> Web 容器 --> 存储 --> 操作系统
非常粗暴的说,这就是你所需要了解的 Web 安全范围,可这些东西谁看了都头大,怎么会有这么多内容!当然了,仔细思考一会儿,你可能会发现:抛去这些多层级,所有的内容,关键都在输入输出上,也就是数据传输的过程,安全也不例外。
这就是接下来要探讨的 Web 安全,我们将尝试从策略角度,通过尽量直观的方式,来揭开「Web 安全」的面纱。
数据通道和浏览器
「Web 内容如何传输,方式是统一协议来形成标准的输入输出,载体是浏览器。」
这是关键。所以接下来就是科普时间:野狗科技内部的两篇文章,将分别介绍 HTTPS 和浏览器的安全策略,让你快速且全面地入门。
HTTP 协议下的网络连接都是基于明文的,信息很有可能被泄露篡改,甚至用户都不知道通信的对方是否就是自己希望连接的服务器。因此,数据通道安全需要保证以下两个目标:身份认证和数据不被泄漏和篡改,HTTPS 便是基于此需求产生的协议,在 HTTP 的基础上增加了 TLS 加密协议,通过数据加密、校验数据完整性和身份认证三种机制来保障安全。
HTTPS 解决了点到点的安全和身份认证问题,接下来会出现问题的地方就只有 2 个:浏览器和服务器,这个层面上的安全问题并没有 HTTPS 一样简单到可以一次性解决。同源策略、跨站脚本攻击、跨站请求伪造、iframe 沙箱环境等等问题,繁杂至多,这里将主要的几种做了基本的介绍。
大势所趋 - HTTPS
从内容数据传输的过程,我们已经将 Web 安全防范的策略分为传输方式和载体两部分,这期周刊的内容就是数据传输的方式——传输协议。接下来,就是 Web 安全之「HTTPS 指南」。
程序猿小卡_casper - HTTPS 科普扫盲帖
让小卡 Casper 带你扫盲:什么是 HTTPS,什么是 TLS/SSL,它如何加密数据(对称/非对称加密),什么是证书、如何辨别非法/伪造/篡改过的证书,HTTPS 握手的流程。全面科普,有些地方可能不够严谨,但够用。
王下邀月熊_Chevalier - HTTPS 理论详解与实践
这篇也是知识补充,但不同于上篇的是它非常完整地讲解了 HTTPS 的整个理论与技术实现原理,会让你明白为什么 HTTPS = HTTP + 加密 + 认证 + 完整性保护,它如何加密、如何进行认证、有哪些工具、如何配置等等。
linkFly - 从 HTTP 到 HTTPS 三部曲:什么是 HTTPS 丨 IIS 部署免费 HTTPS 丨 网站部署 HTTPS 中需要做的事情
三部曲从认识 HTTPS 到如何部署,一整套的流程:申请 SSL/TLS 证书、配置服务器、HTTP 替换,自适应协议资源路径、iframe、HSTS 强制访问,非常详细地配置指南。Let's Encrypt!
jimmy_thr - TLS/SSL 高级进阶
要知道从 HTTP 到 HTTPS 最重要的一环节就是 TLS/SSL 加密了,这也是 HTTPS 作为加密协议的核心原理。通过这篇就可以看到 TLS/SSL 的算法原理、整个过程、如何优化,以及相关的 CA 证书。
HTTP --> ( TLS/SSL --> ) TCP (明文传输)
↑
HTTP + S(ecurity) = HTTPS
最后放一个番外篇,HTTP 作为加密的基础协议,不妨来通过这个系列一窥其貌。当然也为下期的浏览器传输过程的安全做个准备。
总之呢
关于传输协议这部分,可以总结1为
啥地方都要用 HTTPS
采用 HSTS 来强制使用 HTTPS
别忘了从可信的证书机构中请求可信证书
不要乱放你的私钥
用合理的配置工具来生成可靠地 HTTPS 配置
在 Cookie 中设置“secure”标识
不要把敏感的数据放在 URL 中
隔一段时间就要好好看看你的 HTTPS 的配置,表过时了
HTTPS 的更多相关阅读:
Web 安全指南上期就此结束,下期我们将通过传输的载体——浏览器,来探究广为周知的诸如 XSS、CRSF、X-Frame 等方面的策略。
# SegmentFault 技术周刊 #
「技术周刊」是社区特别推出的技术内容系列,一周一主题。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。