我有一个Django应用程序,正在配置一些安全设置。其中一个设置是SESSION_COOKIE_HTTPONLY
标志。我将此标志设置为True。
在会话创建(登录)上,如果我检查cookie,我可以看到会话HTTPOnly
标志。注销时,服务器发回一个带有空值的会话cookie更新,以显示cookie已被销毁。这个空cookie不会在设置httpOnly
标志的情况下发回。
我的问题:这是一个安全问题吗?有没有办法强制Django在注销时设置这个标志?或者这只是预期的行为,并不是安全问题,因为返回的会话cookie是空白的?
答案 0 :(得分:2)
注销时,服务器会发回一个会话cookie更新,其中为空 值表示cookie已被销毁。
HTTPOnly
标志设置为阻止XSS漏洞披露秘密会话ID。通过将cookie设置为空值来“删除”cookie时,将从cookie中删除任何敏感数据。攻击者对空值没有任何用处,因此没有必要设置HTTPOnly
标志。
除此之外,过期日期已设置,max-age
设置为0
。客户端将立即删除cookie,使任何攻击者无法通过XSS攻击读取cookie。