安全過重要!各類大網站、小社區的用戶數據泄露,每天有人被拖庫,因此來和你們聊一聊安全吧,網絡安全話題太大了,再縮小一下,那就 Web 方面的安全吧,畢竟咱們如今天天都離不開 Web 應用了……前端
作開發你們都知道,當咱們瀏覽網頁時,由上至下,全部涉及到的服務組件基本分爲三大塊:算法
前端層,表層的第三方內容 --> Web 前端框架segmentfault
瀏覽器層,Web 應用 --> Web 開發框架瀏覽器
數據服務層,Web 服務端 --> Web 容器 --> 存儲 --> 操做系統安全
很是粗暴的說,這就是你所須要瞭解的 Web 安全範圍,可這些東西誰看了都頭大,怎麼會有這麼多內容!固然了,仔細思考一下子,你可能會發現:拋去這些多層級,全部的內容,關鍵都在輸入輸出上,也就是數據傳輸的過程,安全也不例外。前端框架
這就是接下來要探討的 Web 安全,咱們將嘗試從策略角度,經過儘可能直觀的方式,來揭開「Web 安全」的面紗。服務器
「Web 內容如何傳輸,方式是統一協議來造成標準的輸入輸出,載體是瀏覽器。」網絡
這是關鍵。因此接下來就是科普時間:野狗科技內部的兩篇文章,將分別介紹 HTTPS 和瀏覽器的安全策略,讓你快速且全面地入門。框架
HTTP 協議下的網絡鏈接都是基於明文的,信息頗有可能被泄露篡改,甚至用戶都不知道通訊的對方是否就是本身但願鏈接的服務器。所以,數據通道安全須要保證如下兩個目標:身份認證和數據不被泄漏和篡改,HTTPS 即是基於此需求產生的協議,在 HTTP 的基礎上增長了 TLS 加密協議,經過數據加密、校驗數據完整性和身份認證三種機制來保障安全。
HTTPS 解決了點到點的安全和身份認證問題,接下來會出現問題的地方就只有 2 個:瀏覽器和服務器,這個層面上的安全問題並無 HTTPS 同樣簡單到能夠一次性解決。同源策略、跨站腳本攻擊、跨站請求僞造、iframe 沙箱環境等等問題,繁雜至多,這裏將主要的幾種作了基本的介紹。
從內容數據傳輸的過程,咱們已經將 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 技術週刊 #
「技術週刊」是社區特別推出的技術內容系列,一週一主題。週刊篩選的每篇內容,是做者的獨到看法,踩坑總結和經驗分享。