iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
0
Modern Web

Rails guide / Ruby API study系列 第 17

[ Rails guide study ]Day 17 Basic / Digest HTTP Authentication

  • 分享至 

  • xImage
  •  

首先,來聽首歌吧
Yes
這也是無意中聽到的日本素人歌手,同樣也是主要木吉他伴奏,希望大家喜歡!


Http 認證 Basic / Digest

今天來到這篇的第11章

基礎的 http 認證有 Basic 跟 Digest 兩種

  • Basic HTTP Authentication 的步驟:
  1. 使用者發出 request ,送出使用者帳號跟密碼到伺服器
  2. 使用者判斷使用者帳號跟密碼是否正確來給予需要的資訊或者錯誤訊息
  • Digest HTTP Authentication 的步驟:
  1. 使用者先發送請求給伺服器
  2. 伺服器回應一串亂碼(以下稱為 nonce, number used only once)以及一串代表網域(會是 hash 的格式)的字串,並要求使用者驗證
  3. 使用者回應加密過的帳號 / 密碼 / 網域資訊並且附帶著剛剛伺服器給的 nonce 回去給伺服器
  4. 伺服器根據剛剛的那些資訊是否正確給予需要的資訊或者錯誤訊息

兩個方法的比較

Basic HTTP Authentication 使用 base64 編碼,這並不是加密,因此如果不搭配 SSL 使用的話,等於把你個人資訊暴露在網路世界中,這是非常不安全的做法

至於 Digest HTTP Authentication 的缺點可以從上面步驟看到,每次的 request 都要兩次來回才能得到資訊,因此速度較慢,但當然也相對安全

在 Rails 中要使用這兩種認證方法分別使用的是 http_basic_authenticate_withauthenticate_or_request_with_http_digest 這兩種方法

雖然看到網路上很多資訊,但以目前的能力並不能分辨到底哪些是對哪些是錯,因此只能先做很粗淺的介紹,如果有錯的話也歡迎大家指正喔!

參考資料
Rails Guide

開發者必備知識 - HTTP認證(HTTP Authentication)

StackOverflow

本文章同步分享於 http://anthonychao.site/


上一篇
[ Rails guide study ]Day 16 Request Forgery Protection in Rails
下一篇
[ Rails guide study ]Day 18 Rails 中的 public 檔案與捕捉例外
系列文
Rails guide / Ruby API study30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言