簡體   English   中英

僅從我的應用程序訪問我的后端node.js

[英]access my backend node.js only from my app

我想知道我該怎么做,只有使用本機react開發的android應用程序才能訪問我的API節點js。 因此,只能使用簡單的域白名單從我的網站和應用訪問我的服務器

沒有辦法保證這一點。 客戶端控制客戶端發生的所有事情。 如果應用程序包含防止客戶端干擾的保護機制,則可以對其進行反向工程。

防止未經授權的客戶端連接到后端的一種方法是使用API​​密鑰發出后端請求,該請求以加密(散列)字符串的形式傳輸並在服務器端進行驗證。 濫用的API密鑰需要列入黑名單。

由於可以從API請求中提取哈希密鑰,因此使哈希密鑰變得更復雜的方法是使哈希API密鑰依賴於特定請求,例如:

fetchData(url + '&api_key_hash=' + md5(SALT + url + SECRET_API_KEY))

api_key_hash仍然可以在服務器端進行驗證,但是對於想要對后端API進行未經授權的訪問的客戶端來說是沒有用的。 客戶端的唯一方法是獲取SECRET_API_KEY

由於可以對客戶端應用程序進行逆向工程以獲取未加密的API密鑰,因此使逆向工程更加復雜的方法是不將密鑰存儲為純字符串並混淆應用程序。

請注意,盡管這些措施不能保證不會對應用程序進行逆向工程以提取API密鑰,但對應用程序開發人員而言,混淆可能會使事情復雜化,例如調試和分析崩潰報告。 據我所知,React Native應用程序的逆向工程很簡單,它除了JS混淆之外沒有任何保護。

暫無
暫無

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

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