1
我正在爲我正在開發的應用程序構建一個RESTful API,客戶端編碼器需要能夠代表用戶向API提交數據。我用過的所有流行的API都要求我爲用戶發送生成的會話令牌(在用戶登錄時創建),並請求以用戶名義發佈信息。爲什麼API(如Facebook,last.fm等)爲登錄用戶生成會話密鑰?
出於好奇,我的問題是爲什麼這些API需要一個會話密鑰,而不是讓我再次發送用戶名和密碼與每個請求?
謝謝。
我正在爲我正在開發的應用程序構建一個RESTful API,客戶端編碼器需要能夠代表用戶向API提交數據。我用過的所有流行的API都要求我爲用戶發送生成的會話令牌(在用戶登錄時創建),並請求以用戶名義發佈信息。爲什麼API(如Facebook,last.fm等)爲登錄用戶生成會話密鑰?
出於好奇,我的問題是爲什麼這些API需要一個會話密鑰,而不是讓我再次發送用戶名和密碼與每個請求?
謝謝。
主要原因無疑是圍繞傳遞敏感數據的安全問題。傳遞會話密鑰意味着如果它被攻破,攻擊者只能在有限的生命週期內使用它。另外,如果攻擊者損害了會話密鑰,他們就不能使用這些信息對用戶可能擁有賬戶的其他網站發起攻擊(並可能使用相同的密碼)。
使用會話密鑰的另一個原因是,如果用戶在忙於使用API時更改密碼,則不會突然被鎖定。