【问题标题】:How exactly does django validates its cookie?django 究竟是如何验证它的 cookie 的?
【发布时间】:2017-03-19 16:29:11
【问题描述】:

我在阅读 cookie 验证时遇到了一个问题:Django 究竟是如何验证其 cookie 的?

如果我没记错的话,Django 将会话 ID 存储在 cookie 中以供以后使用。这是否意味着任何伪造 cookie 的人都可以使用任意会话数据?

【问题讨论】:

  • Cookie 不应该是伪造的,任何可以窃取它们的人都可以以您的身份登录。见en.wikipedia.org/wiki/Session_hijacking。现在,你问“Django 如何验证它的 cookie”?你的意思是 Django 如何验证 cookie ......什么? IE。 “验证”是什么意思?

标签: django cookies django-authentication django-sessions


【解决方案1】:

验证本身非常简单:针对会话后端中的数据。正如您所看到的here,您在cookie 中收到的数据来自您的会话session_key 属性。它的存储位置取决于您的会话后端,默认情况下它是数据库。

  1. “伪造”cookie 是不可能的。除非有人偷了你的SECRET_KEY。更多详细信息here

  2. 如果有人从客户端窃取了 cookie,窃贼可以使用客户端的会话直到过期。你无法阻止它。如果您知道这种情况,需要尽快更改客户端的密码,因为这会导致用户现有会话失效(从 Django 1.10 开始)。

更新:你的问题让我很好奇会话后端是否真的按原样存储值......数字,确实如此。 (我也对 Windows 的 pgAdmin 印象深刻)

【讨论】:

    猜你喜欢
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    相关资源
    最近更新 更多