簡體   English   中英

如何保護Node JS API

[英]How to secure node js API

使用以下命令創建了一個節點JS API應用程序: https : //github.com/spoonx/wetland

為了確保該API的安全,我以為我會為每個用戶分配一個API密鑰,但是我想到的一個問題可能是,惡意用戶有時會獲得其他用戶的API密鑰,而他可以使用該API。

所以我的問題是如何為所有此類黑客保護我的API?

如果需要,可以使用多種方法鎖定API,請記住,添加的安全性越高,通常,最終用戶使用API​​的難度就越大。

IP地址鎖定
您可以為每個用戶分配一個IP地址,並將其存儲在數據庫中。 在您的身份驗證中間件中,一旦用戶使用其API密鑰成功進行了身份驗證,您將使用request.connection.remoteAddress檢查他們的請求ip。 如果IP匹配,則允許連接,否則拒絕連接。

JSON Web令牌
可以使用的第二件事是JWT,它是可用於驗證用戶身份的無狀態對象。 這是實現API的一種更安全的方法。 你可以在這里閱讀

使用HTTPS
使用HTTPS將確保沒有人能夠嗅探( MiTM )api密鑰以及與請求一起發送的任何其他信息。 使用HTTPS將在您的應用程序之上增加一層額外的安全保護,這將使惡意行為者更難以訪問您的api密鑰。

請記住,所有這些解決方案將為您的令牌/ api密鑰提供更高的安全性,但是如果您的用戶之一去暴露他們的API密鑰,則您將需要撤銷該API密鑰並生成一個新的API密鑰,或者刪除該API密鑰一個完全。
因此,我建議將API密鑰與用戶一起存儲在數據庫中,以便您可以輕松地撤銷或重新生成特定用戶的api密鑰。 您還應該保留api請求的日志,以便在未實施IP地址鎖定的情況下檢測異常流量或源自未知來源的流量。

暫無
暫無

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

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