【发布时间】:2015-11-20 18:53:24
【问题描述】:
我的网站有一个 AJAX POST 视图,可以从应用程序上的任何页面调用(事件跟踪)。此视图受 CSRF 保护。在某些情况下,CSRF cookie 没有设置,POST 调用失败。
我没有使用@ensure_csrf_cookie 手动装饰所有视图,我正在考虑编写我创建了一个中间件,强制 Django 在所有响应上设置 CSRF cookie。这种方法正确吗?它会造成我不知道的安全漏洞吗?
更新:这里是中间件代码:
from django.middleware.csrf import get_token
class ForceCsrfCookieMiddleware(object):
def process_request(self, request):
get_token(request)
【问题讨论】:
-
安全漏洞?我想不是。因为您只是在中间件中实现
ensure_csrf_cookie的功能。不过,请阅读该装饰器的源代码。 -
@Tzach 你如何在
url.py调用这个函数?
标签: python django csrf django-csrf