gpt4 book ai didi

Django:根据 request.META 值为用户创建唯一标识符

转载 作者:可可西里 更新时间:2023-11-01 16:31:17 26 4
gpt4 key购买 nike

我正在考虑创建一个匿名投票。但是,我想防止用户投票两次。我正在考虑散列一些 request.META 值,如下所示:

from hashlib import md5

request_id_keys = (
'HTTP_ACCEPT_CHARSET',
'HTTP_ACCEPT',
'HTTP_ACCEPT_ENCODING',
'HTTP_ACCEPT_LANGUAGE',
'HTTP_CONNECTION',
'HTTP_USER_AGENT',
'REMOTE_ADDR',
)

request_id = md5('|'.join([request.META.get(k, '') for k in requst_id_keys])).hexdigest()

我的问题:

  1. 好主意?馊主意?为什么?
  2. 其中一些键是多余的还是矫枉过正?为什么?
  3. 其中一些是否可以轻松更改?例如,我正在考虑删除 HTTP_USER_AGENT,因为我知道这只是一个简单的配置更改。
  4. 知道实现这种半唯一标识符的更好方法吗?这种方法足够灵活,可以处理人们共享 IP (NAT) 的问题,但简单的配置更改不会创建新的哈希值?

最佳答案

所有这些参数都很容易改变。为什么不为此目的使用 cookie?我猜像 evercookie

evercookie is a javascript API available that produces extremely persistent cookies in a browser. Its goal is to identify a client even after they've removed standard cookies, Flash cookies (Local Shared Objects or LSOs), and others.

关于Django:根据 request.META 值为用户创建唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com