2017-10-20 159 views
1

我在執行鍼對前端與使用密鑰後端通信的安全方式。後端是敏感業務簽署API從前端調用後端

首先,我想智威湯遜,但基於令牌的方法有兩個缺點(手機銀行):

一)前端必須獲得令牌,這意味着它必須向後端發送一些認證數據 - 如果前端可以做到這一點,任何人都可以做到這一點。

二)即使獲得令牌的一些安全的方式,任何人都可以啓動Chrome瀏覽器開發工具,並使用它,而它沒有過期。

所以另一種方法是從簽署前端用密鑰每個請求。關鍵是衆所周知的後端和前端的前端捆綁並變醜,以保持鑰匙的祕密。我們連接請求URL和它的有效載荷,用一個密鑰對它們進行加密,並將結果散列發送到一個頭部。後端獲取請求,執行相同的加密並比較標題;如果它們相同 - 則提出請求。

這使我的三個問題:

  • 這是否真的意味着,即使請求聞了聞,不能被複制,除非該網址+有效載荷是一樣的嗎?有什麼我失蹤?

  • 是否有JS庫執行這一做法? (或者也可以是針對後端太 - 我使用Django)

  • 有沒有更好的方法嗎?

+0

這是不是一個特別安全的方法:這是混淆的安全性。 雖然按鍵隱藏在通過醜化前端,它仍然存在有人發現,如果他們試圖夠硬... – user184994

+0

而不是滾動您自己的解決方案考慮使用一些嘗試和OAuth的測試這樣。還有的前端和後端可用的庫/工具包(Django的OAuth的工具包) – AndrewS

+0

JWTs你試圖正是重建,但在一個更安全的方式。如果你的祕密是在客戶端,那麼解決它是微不足道的。 – Trickycm

回答

2

捆綁,只要你想,如果它授權請求您的安全密鑰是裏面的js我將能夠取消醜化(美化),並得到它。使用SSL加密連接,只需使用JWT)

http://jsbeautifier.org/

你將不得不授權用戶以某種方式反正,所以這意味着發送私人數據,建立了「會話」。讓它成爲用戶名,電子郵件,密碼或一些「祕密」令牌。