在我的Django应用程序中,我想检查特定的cookie是否具有“ SameSite = None”。
我正在使用此代码读取Cookie的值,
cookiesid = request.COOKIES["cookiesid"]
但是,我不知道如何检查“ SameSite”属性,似乎没有方法可以通过request.COOKIES [“”]
如何检查?
我正在使用Python 3.6.9和Django 3.1
答案 0 :(得分:2)
我最近也遇到了跨域Cookie的问题,并且一直跟踪到Google Chrome浏览器逐步推出其安全更新,从而强制将 SameSite 属性设置为 Lax (如果未设置)
松驰表示默认情况下,将在Google Chrome浏览器中跨域阻止Cookie
鉴于您正在检查代码中的Cookie属性,我认为如果 SameSite 属性不存在,则表示您未设置该属性,并且因此Google Chrome浏览器将属性强制为 Lax
正如您所声明的,您正在使用Django 3.1, settings.py 文件中的以下四个条目可能会解决您的问题(对我而言):
祝你好运!
答案 1 :(得分:2)
再深入一点。
在生产集:
CSRF_COOKIE_SECURE = 真
SESSION_COOKIE_SECURE = 真
CSRF_COOKIE_SAMESITE = '无'
SESSION_COOKIE_SAMESITE = '无'
请勿在开发中设置上述任何标志。如果连接不安全,它会说不能使用 SameSite=None 设置 cookie。
还要确保你有 Django 3,在 Django 2 中有一个错误,它会输出一个 ValueError。