DRF框架是通过什么方法对匿名用户进行限流的?
DRF框架中的限流功能,用户没有登录DRF是如何对匿名用户进行限流的。
是对IP进行限制吗?如果使用nginx反向代理的Python项目也无法获取IP,都是通过127.0.0.1代理访问的。
回答:
是通过ip限制,具体查看源码
def get_ident(self, request): """
Identify the machine making the request by parsing HTTP_X_FORWARDED_FOR
if present and number of proxies is > 0. If not use all of
HTTP_X_FORWARDED_FOR if it is available, if not use REMOTE_ADDR.
"""
xff = request.META.get('HTTP_X_FORWARDED_FOR')
remote_addr = request.META.get('REMOTE_ADDR')
num_proxies = api_settings.NUM_PROXIES
if num_proxies is not None:
if num_proxies == 0 or xff is None:
return remote_addr
addrs = xff.split(',')
client_addr = addrs[-min(num_proxies, len(addrs))]
return client_addr.strip()
return ''.join(xff.split()) if xff else remote_addr
以上是 DRF框架是通过什么方法对匿名用户进行限流的? 的全部内容, 来源链接: utcz.com/p/938597.html