簡體   English   中英

如何僅在Web瀏覽器中安全地使用REST API?

[英]How do I securely use a REST API solely from within a web browser?

我正在嘗試找到一種在瀏覽器中完全與OAuth(v2-23版草案)API安全交互的方法。 在瀏覽器中進行身份驗證存在明顯的安全問題,因為auth令牌和其他密鑰暴露在瀏覽器中的某個位置。

有隱藏這些密鑰的安全方法,還是僅限於創建跟蹤這些密鑰的服務器端解決方案?

當使用我的應用程序的移動版本時,我遇到了這個問題(因為正常的登錄身份驗證無法正常工作。)

我想出的解決方案是使用2個鍵。 當用戶登錄時,最初會給他們令牌。 客戶端已經將令牌保存為應用程序中的變量(您可以根據需要使令牌成為任何字符串,我通常會生成長度為32的base64密鑰。)

因此,這是當他們從GET / PUT / etc等調用服務器時發生的情況的基本操作。

  1. 使用USER TOKENSERVER TOKEN作為參數發送請求。
  2. 對照服務器令牌(已加鹽和散列)檢查SERVER TOKEN (如果SERVER TOKEN很好,請繼續執行步驟3,否則請在此處拒絕請求。
  3. 對照分配給該用戶的用戶令牌(已加鹽和散列)檢查USER TOKEN ,並確保它存在。 如果良好,請繼續執行步驟4,否則請在此處拒絕請求。
  4. 執行請求(GET / PUT / DEL / POST等)

長話短說,我在服務器上保留了用戶令牌(用戶唯一)和服務器令牌(每個用戶都相同)的加鹽和哈希版本,並且完成了脫鹽和散列處理在后端。

我希望這有點道理。 它可能不是標准的或完全正確的,但這是我理解的令牌身份驗證,這對我有用。

如果其他人認為我的推理有問題,請進來並告訴我。

暫無
暫無

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

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