当前位置: 首页 > 面试题库 >

如何禁用Django的CSRF验证?

顾宣
2023-03-14
问题内容

我已在中注释掉了csrf处理器和中间件产品线settings.py:

122 
123 TEMPLATE_CONTEXT_PROCESSORS = (
124     'django.contrib.auth.context_processors.auth',
125 #    'django.core.context_processors.csrf',
126     'django.core.context_processors.request',
127     'django.core.context_processors.static',
128     'cyathea.processors.static',
129 )
130 
131 MIDDLEWARE_CLASSES = (
132     'django.middleware.common.CommonMiddleware',
133     'django.contrib.sessions.middleware.SessionMiddleware',
134 #    'django.middleware.csrf.CsrfViewMiddleware',
135     'django.contrib.auth.middleware.AuthenticationMiddleware',
136     'django.contrib.messages.middleware.MessageMiddleware',
137     'django.middleware.locale.LocaleMiddleware',
138     # Uncomment the next line for simple clickjacking protection:
139     # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
140 )

但是,当我使用Ajax发送请求时,Django仍然会响应“ csrf令牌不正确或丢失”,并且在将X-CSRFToken添加到标头后,请求将会成功。

这里发生了什么 ?


问题答案:

如果只需要一些视图而不使用CSRF,则可以使用@csrf_exempt:

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def my_view(request):
    return HttpResponse('Hello world')


 类似资料:
  • 我想用以下值从Ruby代码发送http请求: http://some_domain.com?key=value 我有这个Spring配置: Spring转换配置: 但我有一个错误: 你知道我如何解决这个问题吗?我可以在Spring以某种方式禁用这个CSRF检查吗?

  • 问题内容: 尝试从教程中制作简单表格时,我收到CSRF验证失败的消息。我对CSRF验证实际上是什么进行了一些研究,据我所知,要使用CSRF验证,你需要在html中使用其中的csrf_token标记之一,但是我没有 这是我的模板: 相当简单,位于contact.html 这是我的urlconf:从 应用程序名称为testapp1。当我键入URL(http:// localhost:8000 / te

  • 问题内容: 我正在使用Express框架使用Node.js编写一个小型Web应用程序。我正在使用csrf中间件,但是我想对某些请求禁用它。这就是我在应用程序中添加它的方式: 我想设置没有csrf控件的POST路由。 问题答案: 有几种可能的方法。您基本上需要了解最简单和最正确的规则,以便决定是否使用csrf中间件。如果您大部分时间都希望使用csrf,除了一小部分请求模式白名单,请遵循此答案中我关于

  • 问题内容: 在我的Django应用程序中,我反复在数据库上运行相同的查询(例如,每10秒运行一次)。然后,我在收到的查询集上创建一个MD5和,并将其与上一次运行中创建的MD5和进行比较。如果两者相等,则数据没有更改,并且不需要更新网页。 在执行此操作时,数据库中的数据可能会更改。 但是,显然由于查询缓存,该查询返回相同的查询集。 如何禁用查询缓存并在数据库上显式执行查询? 问题答案: 我遇到了我认

  • 问题内容: django csrf中间件无法禁用。我已经从我的项目的中间件中将其注释掉,但是由于缺少CSRF问题,导致登录失败。我正在使用Django主干。如果未在中间件中启用CSRF,如何引起问题? 我必须禁用它,因为CSRF刚刚中断了我站点上的许多POST请求。关于如何在django主干项目中完全禁用CSRF的任何反馈? Django主干中的“新” CSRF框架也破坏了一个外部站点,该站点正在

  • 有一个第三方jar包含旧版本的javax.validation库 还有随hibernate-validator(5.3.5.final)一起提供的Spring Boot默认javax.validation库(1.1.0.final) 我的代码构建正常。但在启动过程中会失败,并出现以下错误: 从日志中可以清楚地看出,找不到方法,这是由于验证API版本之间的冲突。我知道Hibernate-valida