【发布时间】:2013-04-29 07:31:47
【问题描述】:
我正在开发一个玩具网站,我已经实现了一个支持按钮,其 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 代表哪个用户。
【问题讨论】:
-
服务器是如何实现的?你在使用框架吗?
-
@Aya 我正在使用 django
-
你在用Django的built-in authentication framework吗?
-
@Aya 是的,我用过。但是这里 bob 不是 request.user,bob 是被点赞的,点赞的可能是 mike 这样的人。
-
这里的用例是什么?您是在为用户点赞,还是用户发布了一些信息?
标签: python html django algorithm web