【发布时间】:2012-03-03 16:00:05
【问题描述】:
我开始使用 python 用谷歌应用引擎制作应用程序,现在我正在使用 cookie 来保持站点中每个用户的会话,我当前用于生成 cookie 的代码如下:
expires = datetime.datetime.utcnow() + datetime.timedelta(days=90) # expires in 30 days
Cookie1 = Cookie.SimpleCookie()
Cookie1["username"] = username
Cookie1["username"]['expires'] = expires.strftime("%a, %d %b %Y %H:%M:%S GMT")
Cookie2 = Cookie.SimpleCookie()
Cookie2["password"] = password
Cookie2["password"]['expires'] = expires.strftime("%a, %d %b %Y %H:%M:%S GMT")
self.response.headers.add_header("Set-Cookie", Cookie1.output(header=''))
self.response.headers.add_header("Set-Cookie", Cookie2.output(header=''))
问题是这样任何人都可以看到这些 cookie 的密码和用户名值,有没有办法对这些值进行编码以便只有我知道这些 cookie 是什么?
【问题讨论】:
-
你应该按照通常的方式来做,只设置一个唯一的token作为cookie,用于识别并在服务器端管理相关的会话信息。
-
谢谢,如果我的问题会很愚蠢,我认为我应该做类似的事情,但我在处理 cookie 方面有点新,我应该如何设置唯一令牌?我应该在用户开始会话时生成总随机 id,然后为用户的不同会话分配新的 id 吗?还有其他更“专业”的方式来处理这个问题吗?
-
这将是手动方式,但是您不应该忘记从存储中删除旧会话。但我敢打赌,存在可以为您处理此问题的库。至少我知道的每个 Web 框架都这样做,例如 Django。
标签: security google-app-engine session-cookies python-2.7