我有两个应用程序Android和iOS与一个后端Node.js服务器通信。有没有办法只允许来自这些应用程序的请求?像某种API密钥方法?我试着考虑过滤来自这些应用程序的请求的方法,但我想我已经卡住了。
我们确实有一个身份验证令牌系统的登录,但是什么阻止用户使用相同的令牌并滥用外部应用程序的请求?
我正考虑加密来自移动应用的所有请求,并在后端以相同的方式解密,但担心需要大量计算。还有什么可以阻止用户使用相同的加密请求并滥用它?
我想我正在寻找的是一些良好的安全措施,可以防止此类滥用,而不会对后端的效率造成太大的阻碍。
答案 0 :(得分:1)
基本上,你不能。但你可以尝试限制它。
您的应用程序将位于您无法控制的设备上。任何人都可以像API令牌一样从中提取信息。他们可以进行一些逆向工程,并将API与另一个工具一起使用。
最好的做法是限制API提供的信息。
答案 1 :(得分:0)
我们可以尝试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'
设备类型可以从用户代理值中提取,我们可以根据请求添加限制。
请检查Mobile Detect以便轻松提取。