Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以防止RESTful API中的批量查询吗?_Api_Rest - Fatal编程技术网

可以防止RESTful API中的批量查询吗?

可以防止RESTful API中的批量查询吗?,api,rest,Api,Rest,如果可能的话,我想问一下,如何防止坏用户对我的RESTfulWebAPI进行大量查询。以下是我的情况: 我的客户端应用程序对web API进行查询。此查询由产品的EAN代码组成。服务器回复产品参数和其他产品信息。现在,我试图阻止的是,我的竞争对手(坏用户)窃取我需要手动收集的宝贵数据。问题是,坏用户拥有所有EAN代码的列表,可以自动查询以从我的API获取所有数据 限制它们,使它们每ip/分钟只能请求x次…可能是通过最终用户必须注册的身份验证令牌或API密钥。或者,如果您认识他们,您可以将他们的I

如果可能的话,我想问一下,如何防止坏用户对我的RESTfulWebAPI进行大量查询。以下是我的情况:


我的客户端应用程序对web API进行查询。此查询由产品的EAN代码组成。服务器回复产品参数和其他产品信息。现在,我试图阻止的是,我的竞争对手(坏用户)窃取我需要手动收集的宝贵数据。问题是,坏用户拥有所有EAN代码的列表,可以自动查询以从我的API获取所有数据

限制它们,使它们每ip/分钟只能请求x次…可能是通过最终用户必须注册的身份验证令牌或API密钥。或者,如果您认识他们,您可以将他们的IP全部列入黑名单。

限制他们,使他们每IP/分钟只能请求x次…可能是通过最终用户必须注册的身份验证令牌或API密钥。或者,如果你认识他们,你可以将他们的IP全部列入黑名单。

让API用户注册自己,并向每个人分发API密钥。如果愿意,该键可以是URL的一部分。这样,您就可以跟踪哪些用户正在做什么,如果您愿意,还可以设置使用限制。

让API用户注册自己,并向每个人分发API密钥。如果愿意,该键可以是URL的一部分。通过这种方式,您可以跟踪哪些用户正在做什么,如果您愿意,还可以设置使用限制。

当然,您需要对API应用安全性。不要允许匿名访问您的资源或API,并确保只有您的“好”客户端才有权调用它们。HTTPS基本身份验证和传输层的SSL加密可以实现这一目的,或者让他们在请求中指定一个秘密客户端密钥。

当然,您需要对API应用安全性。不要允许匿名访问您的资源或API,并确保只有您的“好”客户端才有权调用它们。HTTPS基本身份验证和传输层的SSL加密就可以做到这一点,或者让他们在请求中指定一个秘密客户机密钥。

好吧,我当然考虑过这一点,但这不是解决方案。假设有几千件物品。如果我使用油门,它只会占用坏用户更多的时间,但仍然会得到所有的数据。不是几分钟之内,而是几天之内。将IP列入黑名单也是一个问题,因为他们肯定可以使用许多不同的IP:-(好吧,就像我补充的那样,您可以始终使用用户必须注册的身份验证令牌或API密钥。这样,您可以跟踪并确保只有信任的用户才能获得密钥。是的,我有一个条件,该用户需要注册。但是,他们是基于电子邮件地址注册的,因此对于不好的用户,注册也没有问题。我们LH:噢,我确实考虑过这个问题,但那不是解决办法。假设有几千个项目。如果我使用throttle,只会占用坏用户更多的时间,但仍然会获得所有的数据。不是几分钟,而是几天。将IP列入黑名单也是个问题,因为他们肯定会使用许多不同的IP:-(好吧,就像我补充的那样,你可以始终使用用户必须注册的身份验证令牌或API密钥。这样你可以跟踪并确保只有信任的用户才能获得密钥。是的,我有一个条件,该用户需要注册。但是,他们是根据电子邮件地址注册的,所以对于坏用户来说,注册也没有问题。BTW、 你的问题标题有点误导。你没有像阻止某些客户进行任何查询那样阻止批量查询,对吗?顺便说一句,你的问题标题有点误导。你没有像阻止某些客户进行任何查询那样阻止批量查询,对吗?