django 究竟是如何验证其 cookie 的?

How exactly does django validates its cookie?

我在阅读有关 cookie 验证的内容时遇到了 Django 究竟如何验证其 cookie 的问题?

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

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

  1. 不可能"fake"一个cookie。除非有人偷了你的 SECRET_KEY。更多详细信息 here.

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

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