“请求”cookie是否应设置安全标志?

时间:2015-11-16 21:48:44

标签: django security cookies

我有一个django应用程序。该应用程序有2个主要的cookie从服务器返回(csrftoken和sessionid)。我将settings.py文件中的SESSION_COOKIE_SECURE和CSRF_COOKIE_SECURE标志设置为True,如果我检查登录到我的应用程序的初始请求,我看到这两个cookie都在服务器的响应中设置了“安全”标志。

当我在我的应用程序中检查cookie时,我注意到有“请求cookie”和“响应cookie”。 “响应cookie”是设置了标志的那些。请求cookie没有。

我的问题:是否有某种方法可以强制“请求Cookie”设置其安全标志?这甚至是安全问题吗?我的应用程序流量超过了https,因此浏览器和服务器之间的所有连接都已经加密了......

1 个答案:

答案 0 :(得分:4)

它并没有真正起作用......标志只出现在Set-Cookie标题中(响应)。

当客户端(浏览器)收到Set-Cookie标头时,它会将标志与cookie值一起存储,但仅用于自己的用途(以便浏览器本身可以知道必要时何时何地发送cookie值。

Cookie标头(请求)不能包含标志;它只是<cookie-name>=<cookie-value>对的列表,当您(服务器)收到它们时,您甚至不能保证自己设置它们。
这是因为同一域名下的任何应用程序都可以为该域设置cookie。例如,在 example.com/foo 上运行的应用程序可以为 example.com/bar 设置cookie,甚至可以为 another.example设置cookie。 COM

然而,排除可怕的浏览器错误的可能性,你可以肯定,如果你设置&#34;安全&#34;在您的回复中标记Cookie,接收浏览器不会通过非加密连接发送它 它并非真正100%保证,但它确实是您唯一的选择,几乎整个网络都依赖于浏览器的正常运行,因此您并不孤单。

可悲的是,这就是Cookie的工作原理。如果您有兴趣了解更多相关信息,请阅读他们的官方标准here