使用 RequestHandler.set_secure_cookie() 的龙卷风不允许添加 samesite 属性

tornado using RequestHandler.set_secure_cookie() doesn't allow adding samesite attribute

在我的 python 后端应用程序中,我试图设置一个具有有效 tornado 属性的安全 cookie。

但是,我遇到了一个 veracode 问题,说我需要设置属性 samesite=strict。

做如下:

    # this line is called from another method that sets the cookie.
    request_handler.set_secure_cookie(**self.build_cookie())



    def build_cookie(self):
        cookie_info = {
            'name': 'session_cookie',
            'value': 'session_cookie_value',
            'httponly': True,
            'expires_days': None,
            'samesite': 'Strict',
            'secure': True,
        }
        return cookie_info

出现以下错误

File "/usr/local/lib/python3.6/http/cookies.py", line 332, in __setitem__
raise CookieError("Invalid attribute %r" % (K,))
http.cookies.CookieError: Invalid attribute 'samesite'

有人知道如何设置这个属性吗?

对cookie属性的支持取决于Python的版本;在 Python 3.8 中添加了 samesite 属性。您还可以按照 this question 中所述在旧版本 python 中对其进行猴子修补。