【发布时间】:2016-01-15 07:45:23
【问题描述】:
我在 Rest apis 中应用节流。对于注册用户,它工作正常,但对于匿名用户,我无法 100% 确定唯一用户。
Django Rest Framework 使用 http 标头中的 HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR 根据 IP 地址识别匿名用户。但它将唯一 NAT 后的所有客户端视为单个客户端。
那么识别唯一匿名用户以便正确限制 api 的可靠方法是什么?
【问题讨论】:
-
我不确定你能做到这一点——你总是会遇到这个 NAT-ed 网络的问题。这是您无法控制的事情 - 它与网络通信的运作方式有关。您可以做的是实现访客机制,您将在其中将短期会话 cookie 附加到请求中。为此,您必须注意构建自己的中间件。
-
这对于从事 api 和分析工作的人来说一定是常见的问题,因为在某些时候他们必须识别用户。我只想知道识别唯一匿名用户的标准方法是什么?
-
嗯......为了辩论:如果有这样一种方法可以识别请求背后的请求者,那么当前的身份验证技术不会利用这一点吗?即使持怀疑态度,如果有人知道更好的答案,我也会保持开放的态度......
标签: python django django-rest-framework throttling