如何解决为CherryPy的会话设置samesite-Attribute
我正在使用CherryPy编程软件。我正在使用“ cherrypy.session”正常会话。 现在,我注意到Firefox抱怨我使用的是“错误的” samesite-Attribute,并且将来可能不再可用。
是否可以将CherryPy的会话cookie的samesite-Attribute设置为另一个值?
解决方法
这已经有些技巧了(例如,看起来here) 这意味着显然没有针对python
-
打开../ python3.x / site-packages / cherrypy / _cprequest.py
-
在文件开头添加以下代码
from http import cookies cookies.Morsel._reserved.setdefault('samesite','SameSite')
-
关闭并保存
-
打开../ python3.x / site-packages / cherrypy / lib / sessions.py
-
更改以下函数定义
def init(storage_type=None,path=None,path_header=None,name='session_id',timeout=60,domain=None,secure=False,clean_freq=5,persistent=True,httponly=False,debug=False,# Py27 compat # *,storage_class=RamSession,**kwargs):
到
def init(storage_type=None,samesite='lax' debug=False,# Py27 compat
# *,**kwargs):
-
更改以下内容:
set_response_cookie(path=path,path_header=path_header,name=name,timeout=cookie_timeout,domain=domain,secure=secure,httponly=httponly)
收件人:
set_response_cookie(path=path,httponly=httponly,samesite=samesite)
-
更改以下内容:
def set_response_cookie(path=None,httponly=False):
收件人:
def set_response_cookie(path=None,samesite='lax'):
-
将此代码添加到set_response_cookie()方法的末尾:
if samesite in ['lax','strict',None]: cookie[name]['samesite'] = str(samesite)
-
保存文件并关闭它。
现在,在代码(驱动程序)中,您可以使用“ samesite”属性,如下所示:
'tools.sessions.samesite': 'strict'
或
'tools.sessions.samesite': 'lax' # This is the default value
祝你好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。