2017-05-25 97 views
0

因此,我在不使用任何授權標頭的情況下設置了此登錄系統。相反,我只是通過HTTP請求的主體傳輸數據,確認所述數據,然後授予用戶訪問其個人帳戶的權限。這個想法是創建一個AJAX友好的API,可以在移動設備上訪問。沒有基本身份驗證的用戶HTTP登錄

我是否因爲不通過頭提供身份驗證而做錯了什麼?

+0

如果你不想讓瀏覽器爲你做到這一點,那麼它是正常的,沒有錯。但如果你想要,像這樣添加一個beforeSend https://stackoverflow.com/questions/5507234/how-to-use-basic-auth-with-jquery-and-ajax – PSo

回答

1

我發現這種方法可能存在問題。

讓我們假設您的網站存在XSS漏洞。如果您擁有會話ID的身份驗證Cookie,則可以將其標記爲僅HTTP,攻擊者將無法通過JavaScript獲取該會話ID。但是,由於您將這些信息存儲在HTML正文中,攻擊者完全可以訪問它。他只需要從身體中獲取信息,將其發送給他的邪惡服務器,然後完成,現在他可以冒充用戶。

如果你這樣做,避免創建cookie,主要是因爲你在移動原生應用程序中沒有cookie,所以你應該看看OAuth。這將允許您通過您將生成的令牌來驗證您的用戶,並且您將完全控制其使用期限。而現在你的API消費者只需要請求一個令牌,之後他們只需要發送該令牌並且他們的請求被認證(直到該令牌到期,然後他們需要請求一個新的令牌)。