圖解HTTP(3) 安全
七、確保Web安全的HTTPS
HTTP主要有這些不足:
- 通訊使用明文(不加密),內容可能會被竊聽
- 不驗證通訊方的身份,因此有可能遭遇偽裝
- 無法證明報文的完整性,所以有可能已遭篡改
通訊的加密:和SSL組合使用的HTTP被稱為HTTPS
內容的加密:客戶端和服務端需要加密和解密
如何防止篡改:常用的是MD5和SHA-1等雜湊值校驗的方法,以及用來確認檔案的數字簽名方法。
HTTPS = HTTP + 加密 + 認證 + 完整性保護
經常會在Web的登入頁面和購物結算介面等使用HTTPS通訊
八、確認訪問使用者身份的認證
何為認證:客戶端需要自報家門,HTTP/1.1使用的認證方式如下:
BASIC認證(基本認證):不常用
DIGEST認證(摘要認證):不怎麼用
SSL客戶端認證:雖具有高度的安全等級,但需要費用,尚未普及
FormBase認證(基於表單認證):客戶端傳送登入資訊
基於表單認證:一般會使用Cookie來管理Seesion
步驟1:客戶端把使用者ID和密碼等登入資訊放入報文的實體部分,通常是以POST方法把請求傳送給伺服器。而這時,會使用HTTPS通訊來進行HTML表單畫面的顯示和使用者輸入資料的傳送。
步驟2:伺服器會發放用以識別使用者的Session ID。通過驗證從客戶端傳送過來的登入資訊進行身份認證,然後把使用者的認證狀態與Session ID繫結後記錄在伺服器端。向客戶端返回響應時,會在首部欄位Set-Cookie內寫入Session ID(如PHPSESSID=028a8c...)。你可以把Session ID想象成一種用以區分不同使用者的等位號。然而,如果Session ID被第三方盜走,對方就可以偽裝成你的身份進行惡意操作了。因此必須防止Session ID被盜,或被猜出。為了做到這點,Session ID應使用難以推測的字串,且伺服器端也需要進行有效期的管理,保證其安全性。另外,為減輕跨站指令碼攻擊(XSS)造成的損失,建議事先在Cookie內加上httponly屬性。
步驟3:客戶端接收到從伺服器端發來的Session ID後,會將其作為Cookie儲存在本地。下次向伺服器傳送請求時,瀏覽器會自動傳送Cookie,所以Session ID也隨之傳送到伺服器。伺服器端可通過驗證接收到的Session ID識別使用者和其認證狀態。
通常對密碼加鹽(salt)的方式增加額外資訊,再使用雜湊(hash)函式計算出雜湊值後儲存。
相關文章
- 圖解HTTP 七、確保Web安全的HTTPS圖解HTTPWeb
- 圖解HTTP(1)圖解HTTP
- 圖解HTTP(2)圖解HTTP
- 圖解HTTP(4)圖解HTTP
- 讀《圖解HTTP》圖解HTTP
- 解讀HTTP/3HTTP
- 《圖解http》筆記圖解HTTP筆記
- 圖解HTTP快取圖解HTTP快取
- 圖解HTTP系列--(二)圖解HTTP
- 圖解HTTP系列--(一)圖解HTTP
- 精讀《圖解HTTP》圖解HTTP
- 圖解 HTTP 快取圖解HTTP快取
- 《圖解 HTTP》 摘要一圖解HTTP
- HTTP 協議圖解HTTP協議圖解
- 05 前端HTTP協議(圖解HTTP) 之 HTTP首部前端HTTP協議圖解
- 《圖解HTTP》——簡單的HTTP協議圖解HTTP協議
- 圖解HTTP,閱讀分享圖解HTTP
- 圖解 HTTP 連線管理圖解HTTP
- HTTP 3協議詳解HTTP協議
- 04 前端HTTP協議(圖解HTTP) 之 HTTP狀態碼前端HTTP協議圖解
- 圖解 HTTP 的快取機制 | 實用 HTTP圖解HTTP快取
- 《圖解 HTTP》 讀書筆記圖解HTTP筆記
- 03 前端HTTP協議(圖解HTTP) 之 HTTP報文內的HTTP資訊前端HTTP協議圖解
- 02 前端HTTP協議(圖解HTTP) 之 簡單的HTTP協議前端HTTP協議圖解
- 01 前端HTTP協議(圖解HTTP) 之 網路基礎前端HTTP協議圖解
- 圖解HTTP《四》:返回結果的HTTP狀態碼圖解HTTP
- 《圖解HTTP》閱讀筆記(上)圖解HTTP筆記
- 《圖解HTTP》閱讀筆記(下)圖解HTTP筆記
- HTTP圖解學習記錄(七)HTTP圖解
- 《圖解HTTP》知識點摘錄圖解HTTP
- 圖解HTTP知識總結(思維導圖)圖解HTTP
- 一、《圖解HTTP》- WEB和網路基礎圖解HTTPWeb
- HTTP/3 來了,你瞭解它麼?HTTP
- 最無恥的 HTTP 常用狀態碼圖解HTTP圖解
- HTTP1.1、HTTP2、HTTP3 演變HTTP
- [譯] HTTP/3: 起源HTTP
- 圖紙管理、圖文件管理安全保障解決方法
- HTTP協議圖文簡述--HTTP/HTTPS/HTTP2HTTP協議