首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >csrf令牌dajaxice

csrf令牌dajaxice
EN

Stack Overflow用户
提问于 2011-06-28 19:18:02
回答 3查看 1.3K关注 0票数 0

我正在试用this example。每当我尝试访问dajax函数时,它都会给出"no csrf or session cookie“错误。如何在javascript中添加csrf标记。我尝试在模板中添加csrf令牌,但不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-28 20:06:12

来自django doc

  1. 将中间件'django.middleware.csrf.CsrfViewMiddleware‘添加到您的中间件类列表MIDDLEWARE_CLASSES中。(如果正在使用CsrfResponseMiddleware,那么它应该出现在CSRF之前,并且在任何假设CSRF攻击已经得到处理的视图中间件之前。)
  2. 在任何使用POST表单的模板中,如果表单用于内部django.views.decorators.csrf.csrf_protect,请在元素内使用csrf_token标记:

{% csrf_token %}

对于以外部URL为目标的POST表单,不应执行此操作,因为这将导致CSRF令牌泄漏,从而导致漏洞。

  1. 在相应的视图函数中,请确保使用的是'django.core.context_processors.csrf‘上下文处理器。通常,可以通过以下两种方式之一完成此操作:

3.1使用RequestContext,它总是使用'django.core.context_processors.csrf‘(不管你的TEMPLATE_CONTEXT_PROCESSORS设置是什么)。如果您使用的是通用视图或contrib应用程序,那么您已经被涵盖了,因为这些应用程序始终使用RequestContext。

3.2手动导入并使用处理器生成CSRF令牌,并将其添加到模板上下文中。

票数 1
EN

Stack Overflow用户

发布于 2011-06-28 19:48:23

1)在settings.py中将'django.middleware.csrf.CsrfViewMiddleware‘添加到您的middleware_classes

2)在模板标签后使用{% csrf_token %}

基本上,就是这样

https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax在这里你可以找到关于javascript和ajax csrf标记的信息。

票数 2
EN

Stack Overflow用户

发布于 2011-06-30 18:46:20

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6505577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档