我有一个Tornado网络应用程序,我使用Google Oauth Mixin和Facebook Graph Mixin登录。一旦我授权用户,我就会将他的电子邮件保存在cookie中:
self.set_secure_cookie('trakr', user['email'])
在随后的请求中,我会检查cookie是否已设置。如果已设置,那么我将使用该电子邮件从cookie和查询数据库中收取电子邮件。
我正在使用cookie_secret
对其进行加密,因此无法以纯文本格式提供电子邮件。所以今天我使用了另一封电子邮件,登录并记下了它的cookie值。然后我使用我的主电子邮件ID登录,编辑了另一个用户的cookie值并刷新了页面。现在我可以通过他的cookie值看到另一个用户的内容!
那么我该如何解决这个问题呢?或者,如果有人找到我的饼干,他们可以随时以我的身份登录吗?
答案 0 :(得分:0)
感谢Jeff解决方案很简单。制作Cookie httpOnly
创建Cookie时,请将其传递为True
。
self.set_secure_cookie('trakr', user['email'], httpOnly=True)