【问题标题】:how to make encoded values for cookies? (python)如何为 cookie 制作编码值? (Python)
【发布时间】: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


【解决方案1】:

最好使用安全 cookie/会话的现有实现之一。 你可以使用webapp2 sessions

在我的应用程序中,我使用Werkzeug secure cookies 来实现用户会话。

【讨论】:

  • thx 这很有帮助,但现在我决定在服务器端对密码进行编码,然后将它们保存在数据库中,每次用户登录时,我首先对其密码进行编码,然后比较从用户在数据库中具有编码密码,并且该编码值保存在每个 cookie 中
猜你喜欢
  • 2015-04-04
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多