2017-03-02 31 views
0

我在很多地方讀到基本身份驗證在http連接上不安全,因爲客戶端的密碼很容易從編碼值中派生出來。但是,如果是這樣的話,那麼oauth 2.0是否可以通過http進行安全保護? 在瀏覽器接收到訪問令牌後的oauth 2.0中,它會將令牌附加到對服務器發出的所有請求中。在這種情況下,如果某人獲取了訪問令牌,雖然他們無法從中獲取密碼,但他們仍然可以使用此訪問令牌向服務器僞造用戶請求。 如果情況並非如此,那麼任何人都可以請解釋我錯在哪裏,爲什麼oauth 2.0認爲比http連接的基本認證更安全?outh 2.0比基於http連接的基本認證更安全嗎?

PS:我已經在上面的例子中所使用的場景與客戶端登錄到應用程序中使用自己的用戶名和密碼

回答

1

使用OAuth 2.0比普通HTTP是不安全的,是通過規範禁止:https://tools.ietf.org/html/rfc6750#section-5.3它說:

使與 承載的令牌請求時客戶機必須始終使用TLS [RFC5246] (HTTPS)或等效傳輸安全:

始終使用TLS(HTTPS)。如果不這樣做,則會將令牌暴露給許多可能會給攻擊者無意訪問的攻擊。

然後再次說明,OAuth通常被認爲比基本認證更安全的原因是因爲OAuth 2.0令牌固有地具有與其相關的期滿,而基本認證則沒有。因此,向攻擊者丟失令牌至少會限制攻擊者在可以使用的時間窗口內。

+0

感謝您的及時回覆。因此,如果我打算在我的Web應用程序中實現基本安全性,那麼使用基於https連接的基本身份驗證也應該達到目的? – prem