我一直在調查這幾天,並遇到很多SO問題,但我仍然不太確定。內部REST API安全
我正在用Node.js創建一個REST API,它將用於Web應用程序和移動應用程序,該應用程序僅用於應用程序的後端而不用於其他開發人員。
我目前的擔心是安全我知道還有其他方式,如OAuth等,但我想知道如果我目前的方法是足夠安全的。
「客戶端」使用Node中的crypto.createHmac('text', 'secret');
方法創建HMAC-SHA1令牌,該方法包含一個API密鑰和一個祕密。祕密內置於代碼中,而當用戶登錄該應用程序時,先前已從數據庫中檢索到API密鑰。客戶端然後發送此令牌以及用戶ID。
然後,REST服務器檢索已發送的用戶ID的API密鑰,然後使用剛剛檢索到的API密鑰和祕密創建HMAC-SHA1標記。然後它檢查它們是否相同,然後繼續處理請求。
我不介意它是否「重新發明輪子」或其他什麼,它更多的是體驗。如果這種方法不安全,我想知道爲什麼。
我不確定HMAC步驟甚至是必要的。除非您期望入侵者能夠竊聽您可能加密的服務器到服務器通信,爲什麼不將您的共享密鑰和API令牌作爲消息的一部分發送? –
@AndrewLavers是的,我想知道是否需要hmac,這只是我在研究時看到的幾次彈出。只是這個話題非常有見地,而且很難找到真正需要的內容,而不是過度警惕。 – Emobe
@AndrewLavers雖然我很想知道它會被移動應用程序訪問,但他們能夠讀取共享密鑰嗎? – Emobe