我正在构建一个REST,并打算使用速率限制(使用漏桶算法)来防止爬行和枚举。API将由移动/平板应用程序(安装在许多设备上)和服务器对服务器客户端(一些内部,一些外部)使用。
允许用户在他们的手机上安装应用程序(实际上是将API公开的数据呈现出来),同时仍然限制反向工程师的爬行和枚举,我想出了这样的策略:
此策略不适用于服务器对服务器的客户端,因为为了使用API,这些客户端必须与我的公司建立合同。
现在,关于限速:
这些策略中的一种更可取吗?如果:利与弊是什么?
另外:如果选择1更好:如何应用每个实体的1令牌策略?
我特别担心的是
发布于 2016-04-20 14:56:03
经过多次的反复讨论和与同事们的讨论,我决定选择方案2。原因如下:
这些策略在功能上是平等的。比赛条件是造成麻烦的原因。我们预计这些竞赛条件会发生:
在第一种情况下,这两种战略具有同等的质量,而战略2在第二种情况下有几个优点:
单个设备可能希望“注销”并确保它们的令牌不被混淆。使用策略1也是不可能的。
的所有权限
如果设备不需要所有可能的潜在权限,那么最好不要获得比所需权限更多的令牌。使用策略1,这也是不可能的。
https://softwareengineering.stackexchange.com/questions/316180
复制相似问题