在我的Django应用程序中,我想检查特定cookie是否具有"SameSite=None"。 我正在使用以下代码读取cookie的值:
cookiesid = request.COOKIES["cookiesid"]
然而,我不知道如何检查“SameSite”属性,似乎没有通过request.COOKIES[""]检查它的方法。
我该怎么办?
我正在使用Python 3.6.9和Django 3.1
cookiesid = request.COOKIES["cookiesid"]
然而,我不知道如何检查“SameSite”属性,似乎没有通过request.COOKIES[""]检查它的方法。
我该怎么办?
我正在使用Python 3.6.9和Django 3.1
最近我也遇到了跨域的Cookie问题,我发现是由于Google Chrome逐步推出其安全更新,如果未设置,则会强制将 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'
祝你好运!
深入一点。
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE = 'None'
还要确保您使用的是Django 3,因为在Django 2中存在错误,会输出ValueError。