use*_*168 7 django cookies python-3.x
在我的 Django 应用程序中,我想检查特定 cookie 是否具有“SameSite=None”。
我正在使用此代码读取 cookie 的值,
cookiesid = request.COOKIES["cookiesid"]
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何检查“SameSite”属性,似乎没有方法可以通过 request.COOKIES[""] 来检查它
我该如何检查?
我正在使用 Python 3.6.9 和 Django 3.1
jua*_*aza 15
更深入一点。
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE = 'None'
Run Code Online (Sandbox Code Playgroud)
还要确保你有 Django 3,在 Django 2 中存在一个 bug,它会输出一个 ValueError。
小智 10
我最近也遇到了跨域 Cookie 的问题,我已经追踪到谷歌浏览器逐渐推出他们的安全更新,如果没有设置SameSite属性,它会强制为Lax
Lax意味着默认情况下将在 Google Chrome 上跨域阻止 Cookie
鉴于您正在检查代码中 Cookie 的属性,我认为如果SameSite属性不存在,那么您就没有设置它,因此 Google Chrome 会强制将该属性设置为Lax
正如您所说,您使用的是 Django 3.1,settings.py文件中的以下四个条目可能会解决您的问题(就像对我一样):
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE = 'None'
Run Code Online (Sandbox Code Playgroud)
祝你好运!