mysql鑑權方式 四種常用鑑權方式

2021-10-18 12:07:07 字數 2056 閱讀 7160

由於http 協議是一種無狀態的協議,伺服器端並不知道客戶端的那一頭是誰在請求伺服器。而且伺服器上的資源不一定是對所有人開放,所以需要進行使用者對登入鑑權。目前,我們在開發中主要使用過4 種鑑權方式。

一、http basic authentication鑑權

這種授權方式是瀏覽器遵守http協議實現的基本授權方式。

當客戶端向服務端請求資料時,若客戶端未成功被驗證,服務端將會向客戶端傳送驗證請求**401。這時候瀏覽器會自動彈出讓你輸入使用者名稱密碼的彈窗。

輸入使用者名稱密碼後,客戶端會發起乙個ajax請求,在請求頭的authorization上帶上使用base64加密後的使用者名稱密碼字串。(加密過程是瀏覽器自己加密的)

驗證成功後,每次發起請求都會在請求頭里帶上這個加密字串。

優點 基本上所有流行的網頁瀏覽器都支援基本認證。基本認證很少在可公開訪問的網際網路**上使用,有時候會在小的私有系統中使用(如路由器網頁管理介面)。後來的機制http摘要認證是為替代基本認證而開發的,允許金鑰以相對安全的方式在不安全的通道上傳輸。 程式設計師和系統管理員有時會在可信網路環境中使用基本認證,使用telnet或其他明文網路協議工具手動地測試web伺服器。這是乙個麻煩的過程,但是網路上傳輸的內容是人可讀的,以便進行診斷。

缺點 雖然基本認證非常容易實現,但該方案建立在以下的假設的基礎上,即:客戶端和伺服器主機之間的連線是安全可信的。特別是,如果沒有使用ssl/tls這樣的傳輸層安全的協議,那麼以明文傳輸的金鑰和口令很容易被攔截。該方案也同樣沒有對伺服器返回的資訊提供保護。 現存的瀏覽器儲存認證資訊直到標籤頁或瀏覽器被關閉,或者使用者清除歷史記錄。http沒有為伺服器提供一種方法指示客戶端丟棄這些被快取的金鑰。這意味著伺服器端在使用者不關閉瀏覽器的情況下,並沒有一種有效的方法來讓使用者登出。

session-cookie 機制

cookie是伺服器傳送到使用者瀏覽器並儲存在本地的一小塊資料,它會在瀏覽器下次向同一伺服器再發起請求時被攜帶併發送到伺服器上。(cookie在瀏覽器關閉後就會被清除)

session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。(session不會在瀏覽器退出後就刪除,需要服務端傳送刪除的指令才會被刪除)

優缺點session-cookie的缺點

(2)為了滿足全域性一致性,我們最好把 session 儲存在 redis 中做持久化,而在分布式環境下,我們可能需要在每個伺服器上都備份,占用了大量的儲存空間。

(3)在不是 https 協議下使用 cookie ,容易受到 csrf 跨站點請求偽造攻擊。

token安全令牌機制

token 是乙個令牌,當瀏覽器第一次訪問服務端時會簽發一張令牌,之後瀏覽器每次攜帶這張令牌訪問服務端就會認證該令牌是否有效,只要服務端可以解密該令牌,就說明請求是合法的。一般 token 由使用者資訊、時間戳和由 hash 演算法加密的簽名構成。

優點:(1)token 認證不侷限於 cookie ,這樣就使得這種認證方式可以支援多種客戶端,而不僅是瀏覽器。且不受同源策略的影響。

(2)不使用 cookie 就可以規避csrf攻擊。

(3)token 不需要儲存,token 中已包含了使用者資訊,伺服器端變成無狀態,伺服器端只需要根據定義的規則校驗這個 token 是否合法就行。這也使得 token 的可擴充套件性更強。

缺點:(1)加密解密消耗使得 token 認證比 session-cookie 更消耗效能。

(2)token 比 sessionid 大,更佔頻寬。

oauth 驗證

前端鑑權的幾種方式

基於瀏覽器的一種鑑權方式。1.未授權請求,攔截,返回 401 unauthorised 2.支援的瀏覽器彈出使用者名稱密碼框,輸入使用者名稱密碼,連同上次請求資料,一起傳送到服務端 使用授權頭,authorization basic base64 編碼的使用者名稱密碼 3.服務端驗證通過,返回資源 ...

4種常見的鑑權方式及說明

鑑權 authentication 是指驗證使用者是否擁有訪問系統的權利。傳統的鑑權是通過密碼來驗證的。這種方式的前提是,每個獲得密碼的使用者都已經被授權。在建立使用者時,就為此使用者分配乙個密碼,使用者的密碼可以由管理員指定,也可以由使用者自行申請。這種方式的弱點十分明顯 一旦密碼被偷或使用者遺失...

前後端常見的幾種鑑權方式

目前我們常用的鑑權有四種 token 驗證 oauth 開放授權 一.http basic authentication 這種授權方式是瀏覽器遵守http協議實現的基本授權方式,http協議進行通訊的過程中,http協議定義了基本認證認證允許http伺服器對客戶端進行使用者身份證的方法。認證過程 1...