为什么我不能在客户端获得'sessionid'?

Mem*_*mke 5 javascript django cookies session client-side-scripting

我登录django admin.当我打开firebug JS控制台并尝试打印cookie时document.cookie我只得到csrftokencookie.但是,当我打开Firefox首选项>隐私>删除cookie ...然后我可以看到sessionidcookie.

如何在客户端获得?

thi*_*nom 10

您无法访问会话cookie,因为它默认设置为HTTPOnly.(您可以使用Firebug查看它(参见Resources-> Cookies-> sessionid的HTTP列))

文档中复制:

SESSION_COOKIE_HTTPONLY
Default: True

Whether to use HTTPOnly flag on the session cookie. 
If this is set to True, client-side JavaScript will not to 
be able to access the session cookie.
Run Code Online (Sandbox Code Playgroud)

SESSION_COOKIE_HTTPONLY = False如果您真的想从客户端代码访问它,可以在settings.py中设置:.然而,这不是推荐的做法.

  • 请注意,不推荐练习的原因是,如果您的站点在某种程度上容易受到XSS的攻击,那么攻击者可以使用它来窃取会话ID.如果会话ID没有暴露给JS土地,这当然是不可能的. (4认同)