Django Cookie 前缀以通过 securityheaders.com

run*_*ace 4 security django cookies

securityheaders.com 使我的配置失败并出现以下错误:

Set-Cookie  There is no Cookie Prefix on this cookie.
Run Code Online (Sandbox Code Playgroud)

这是 cookie 的值:

Set-Cookie  sessionid=123456789123456789123456789; expires=Thu, 12 Sep 2019 06:51:38 GMT; HttpOnly; Max-Age=1209600; Path=/; SameSite=Strict; Secure
Run Code Online (Sandbox Code Playgroud)

我试图在 settings.py 中添加 cookie 前缀:

CSRF_COOKIE_NAME = '__Secure-csrftoken'
Run Code Online (Sandbox Code Playgroud)

但它似乎是一个不同的参数。我已经搜索了文档,这就是我能找到的所有内容,似乎不适用。

securityheaders.com 在 cookie 前缀上声明它需要以__Secure-__Host-

Wil*_*sem 6

您使用了错误的设定,这是不是CSRF_COOKIE_NAME[Django的文档],而SESSION_COOKIE_NAME[Django的DOC]

默认: 'sessionid'

用于会话cookie的名称。这可以是您想要的任何名称(只要它与应用程序中的其他 cookie 名称不同)。

请注意,它抱怨的 cookie 的名称是sessionid

Set-Cookie  sessionid=123456789123456789123456789; expires=Thu, 12 Sep 2019 06:51:38 GMT; HttpOnly; Max-Age=1209600; Path=/; SameSite=Strict; Secure
Run Code Online (Sandbox Code Playgroud)

因此,您需要将其指定为:

SESSION_COOKIE_NAME = '__Secure-sessionid'
CSRF_COOKIE_NAME = '__Secure-csrftoken'
Run Code Online (Sandbox Code Playgroud)