iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
Modern Web

Backend Developer的學習Roadmap系列 第 11

Day 11 Authentication - Basic Authentication

  • 分享至 

  • xImage
  •  

今天我們要來介紹很基本的基本授權觀念,一開始我以為它就是standard username and password authentication,其實是不對的。

Basic Authentication

我們可以在RFC7617找到它,它用於在HTTP請求中傳送userId和密碼來認證,它會將userId以及密碼做Base64編碼後,附加在Authorization header來發送。

流程

  1. client send request to server, server response 401, 並要求client認證
  2. client在後續的request都帶有Authorization header,認證成功後,server才會做事情。

問題

因為它是不加密的傳遞,它只是用Base64做編碼,並沒有用任何加密的方法來保護帳密的安全,如果使用HTTP而不是HTTPS的話,被惡意攻擊截走我們的帳密後,就可以將帳密公諸於世啦,可怕~ 如果我們又有一個壞習慣,將所有網站的帳密都用同一組,應該不少人是這樣做的,因為記得帳密很麻煩XD,被偷走帳密等於你的所有網站幾乎都有被盜的風險,這是蠻嚴重的事情,因此現在才有越來越多的網站採取2fa認證。

建議要跟HTTPS一起使用,並且需要高安全性的應用場景也不應該使用這種機制,可以使用類似OAuth的機制來處理。

Standard Username and Password Authentication

它除了帳密以外,還可以使用多因素身份驗證(MFA),例如指紋辨識等,來提高更強的安全性,所以它跟Basic Authentication其實不是同一種東西,但他也包含了一般帳密的認證方式。

總結

今天我們了解Basic Authentication是甚麼東西,並且知道了它的應用場景。

reference

https://roadmap.sh/guides/http-basic-authentication


上一篇
Day 10 Authentication - OAuth2.0
下一篇
Day 12 Authentication - Cookie-Based Authentication
系列文
Backend Developer的學習Roadmap30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言