簡體   English   中英

Web 控制台中的 Rails gem devise_token_auth 標頭足以訪問 api,為什么?

[英]Rails gem devise_token_auth headers in web console are enoguh to access api, why?

我正在學習如何在我的 rails 5 API 中實現安全性。 我正在開發一個 Angular 應用程序來使用 API,為此我正在實現 devise_token_auth gem,但在我的郵遞員測試中,我可以使用電子郵件和密碼進行注冊,然后我收到帶有令牌(到期)、數據的響應、內容類型、客戶端、uid,然后我從 angular 測試並從我的瀏覽器注冊,在 web 控制台中,我可以看到從另一個應用程序訪問 api 所需的所有信息。

設計方法authenticate_user 需要參數:content-type、access-token、client、expiry、uid,但是每個人都可以通過查看Web 控制台中的響應來訪問這些信息,然后……我選擇這些信息並粘貼 Postman 請求,我可以訪問受保護的端點,那么這個 gem 有什么用呢? 我錯過了什么嗎?

在這里,我從 angular 登錄,並在 Web 控制台中檢查響應:

在此處輸入圖片說明

然后將信息粘貼到郵遞員的新請求中以訪問受保護的端點:

在此處輸入圖片說明

並且訪問成功,如何防止web控制台顯示header信息?

但是如果他們查看 Web 控制台中的響應,每個人都可以訪問這些信息

我錯過了什么嗎?

是的。 “每個人”只能看到他們自己的令牌(不包括嗅探 http 之類的東西。您將使用 TLS,對嗎?)。 有了他們的代幣,用戶就可以隨心所欲,而您對此無能為力。

但是他們無法通過這種方式看到其他用戶的令牌。

這就是互聯網的運作方式。 您正在登錄並向服務器發送信息。 然后服務器用一個秘密令牌響應,您下次可以使用它而不是用戶名和密碼。 使用該秘密令牌,您可以執行后續請求,而不是使用您的用戶名和密碼。

關於您對“每個人”看到它的擔憂。 這就是您需要 SSL 加密的原因,這可以確保其他人無法讀取您發送的用戶名和密碼,以及您收到的令牌。 如果沒有 SSL,您的網絡或到服務器的路由上的任何人都可以讀取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM