2
我的最新API即將「發貨」。從「早期發佈和經常發佈」的背景出發,我計劃在更高發布版本中實施oAuth。我是否仍然應該爲我的API提供基本身份驗證
是什麼原因導致Twitter removes Basic Auth from its API?在任何API中使用基本身份驗證有什麼優點和缺點以及安全隱患?
最佳
亨裏克
我的最新API即將「發貨」。從「早期發佈和經常發佈」的背景出發,我計劃在更高發布版本中實施oAuth。我是否仍然應該爲我的API提供基本身份驗證
是什麼原因導致Twitter removes Basic Auth from its API?在任何API中使用基本身份驗證有什麼優點和缺點以及安全隱患?
最佳
亨裏克
的可能(愚見)爲什麼Twitter的去除基本授權是基於這樣的事實,基本授權是基於Base64 encoding。基本授權標頭允許您散列用戶名和密碼的字符串concocuation(用冒號分隔)。
例如(僞代碼,語言獨立的)
String basicAuth = Base64Encode("username:password"); //where username is my username and password is password.
httpRequestHeader.setHeader("Authorization", "Basic " + basicAuth);
竊聽者可以截取HTTP請求,檢索Authorization
報頭,並且解碼Base64編碼流,並獲得用戶的用戶名和密碼。編碼器/解碼器代碼可以在互聯網上的任何地方找到。
現在,竊聽者使用該用戶名和密碼登錄到Twitter併成爲「新」用戶(並更改密碼以便當前用戶不再登錄)。
或多或少,基本認證的缺陷可以在here找到。
其次,Twitter想要在發佈商網站上完成身份驗證,而不是通過第三方客戶端遠程發送。 OAuth提供了這樣的能力。