我在一个玩具网站上工作,我已经实现了一个 upvote 按钮,具有这样的 onclick 属性:
Dajaxice.debater.upvote(
upvote_js,//Don't worry about this, it's just dealing with AJAX
{
'username' : 'bob',//bob is the user being upvoted by
}
)
您会看到问题是网页直接使用用户名,这是糟糕的设计,因为用户可以轻松打开 chrome 控制台,更改用户名并伪造一个支持说 alice 而不是 bob 的请求。我调查了几个网站,发现他们使用一个看起来像哈希的长字符串来表示用户。我想知道这通常是如何实现的?以更一般的形式,我正在寻找一种算法:
- 为每个用户提供一个唯一的 id
- 即使这个 id 暴露给用户或任何第三方,他们也不知道这个 id 代表哪个用户,而无需使用很长时间或大量内存来计算(反转哈希)。