【问题标题】:Identify unique anonymous user in Django Rest Framework在 Django Rest Framework 中识别唯一的匿名用户
【发布时间】:2016-01-15 07:45:23
【问题描述】:

我在 Rest apis 中应用节流。对于注册用户,它工作正常,但对于匿名用户,我无法 100% 确定唯一用户。

Django Rest Framework 使用 http 标头中的 HTTP_X_FORWARDED_FORREMOTE_ADDR 根据 IP 地址识别匿名用户。但它将唯一 NAT 后的所有客户端视为单个客户端。

那么识别唯一匿名用户以便正确限制 api 的可靠方法是什么?

【问题讨论】:

  • 我不确定你能做到这一点——你总是会遇到这个 NAT-ed 网络的问题。这是您无法控制的事情 - 它与网络通信的运作方式有关。您可以做的是实现访客机制,您将在其中将短期会话 cookie 附加到请求中。为此,您必须注意构建自己的中间件。
  • 这对于从事 api 和分析工作的人来说一定是常见的问题,因为在某些时候他们必须识别用户。我只想知道识别唯一匿名用户的标准方法是什么?
  • 嗯......为了辩论:如果有这样一种方法可以识别请求背后的请求者,那么当前的身份验证技术不会利用这一点吗?即使持怀疑态度,如果有人知道更好的答案,我也会保持开放的态度......

标签: python django django-rest-framework throttling


【解决方案1】:

我认为您可以使用 sessions 解决此问题,这是您可以用于跟踪的唯一匿名用户的唯一字段。

会话基于 cookie,因此当您的匿名用户返回您的应用程序时,如果 cookie 仍然有效,您将能够为用户检索正确的会话。

我认为这个链接会有所帮助:Django storing anonymous user data

【讨论】:

    猜你喜欢
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2020-05-07
    • 2021-04-11
    • 2023-03-03
    • 2021-09-26
    相关资源
    最近更新 更多