是否有任何方法可以识别API请求的来源

时间:2020-07-28 08:11:19

标签: laravel api flutter restapi laravel-api

我正在使用Flutter应用程序,该应用程序使用API​​从服务器获取数据。 Flutter应用程序是公开的,任何人都可以使用而无需登录该应用程序。而且一切正常。

我的问题:有没有办法识别API请求的来源。因为任何人都可以使用此API来获取数据,这可能导致服务器泛滥。

如果可以找出请求的来源,那么我可以处理仅来自Flutter应用程序的请求。

有可能吗?

2 个答案:

答案 0 :(得分:0)

使用https作为协议,并向您的应用添加api密钥和客户端密钥。

然后通过以下方式保护您的api: http基本身份验证或OAuth。

https://laravel.com/docs/7.x/authentication#stateless-http-basic-authentication

https://laravel.com/docs/7.x/passport

答案 1 :(得分:0)

当第一个请求进入服务器时,发出令牌,例如 (伪代码)

//here stringContainingData can be a json string having details about the client and the connection
token = MyHashingFunctionUsingAPassword(stringContainingData,MyStrongPassword);

发回令牌后,下一次api访问应该在每个请求中包含令牌(如果未拒绝的话);如果令牌存在,请执行此操作

stringContainingData = MyDeHashingFunction(token,MyStrongPassword)
//verify data
mappedToken = stringToMap(stringContainingData);
if(mappedToken.containsKey('keyThatShouldBePresent') //acknowledge request
else //reject request

要拒绝进一步的泛洪,请从单个IP设置最大请求数/秒

相关问题