繁体   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