只允许来自移动应用程序的请求到Node.js服务器?

我有两个应用程序Android和iOS通信到一个后端Node.js服务器。 有没有办法只允许来自这些应用程序的请求? 像某种API键的方法? 我试图想办法从只有这些应用程序过滤请求,但我想我卡住了。

我们确实有一个身份validation令牌系统的login,但什么是阻止用户采取相同的标记和虐待外部应用程序的请求?

我正在考虑encryption所有来自移动应用程序的请求,并以相同的方式在后端解密,但担心需要大量的计算。 什么是阻止用户采取相同的encryption请求,并滥用它呢?

我想我正在寻找的是一些很好的安全措施,可以防止这种滥用,而不会对后端的效率造成太多的阻碍。

基本上,你不能。 但是你可以尝试限制它。

您的应用程序将位于您不能控制的设备上。 任何人都可以像API Token一样从中提取信息。 他们可以做一些逆向工程,并使用另一个工具来使用你的API。

最好的办法是限制你的API提供的信息。

我们可以尝试using req.headers['user-agent'] ,值会是

“Mozilla / 5.0(Linux; U; Android 4.0.3; en-in; SonyEricssonMT11i Build / 4.1.A.0.562)AppleWebKit / 534.30(KHTML,如Gecko)版本4.0 Mobile Safari / 534.30'

设备types可以从用户代理值中提取,我们可以添加限制请求。

请检查移动检测以便于提取。