如何在Django 1.11中使用Cookie CSRF?

时间:2018-08-18 09:39:06

标签: django django-rest-framework csrf

您好,我有一个前端应用程序,该应用程序已迁移到django,并且为了保护csrf,我使用的方法是将csrf令牌从cookie复制到我的发帖请求的标头中。尽管请求包含来自cookie的csrf令牌,但Django仍在抱怨无效的csrf令牌。
在我的settings.py中,我明确指定: CSRF_USE_SESSIONS = False 确保根据docs

使用基于cookie的csrf

,获取cookie csrf的请求标头为: HTTP_X_CSRFTOKEN

存在cookie,并将其复制到上面的标题中

1 个答案:

答案 0 :(得分:2)

HTTP_X_CSRFTOKEN是错误的请求标头名称。 correct的名称为X-CSRFToken。 Django通过以下方式将 HTTP请求标头名称转换为 Python字典键

  

将所有字符转换为大写字母,用下划线替换所有连字符,然后在名称中添加一个“ HTTP_”前缀。

不幸的是,转型会导致混乱。