栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django-CSRF验证失败

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django-CSRF验证失败

解决方法
1。包括

{% csrf_token %}
在模板的表单标签内。

2。如果因任何原因,你正在使用

render_to_response
上的Django 1.3及以上,取而代之的是该render功能。替换为:

# Don't use this on Django 1.3 and abovereturn render_to_response('contact.html', {'form': form})

有了这个:

return render(request, 'contact.html', {form: form})

该render函数是在Django 1.3版中引入的 -如果你使用的是1.2或更低版本,则必须使用

render_to_responseaa RequestContext:

# Deprecated since version 2.0return render_to_response('contact.html', {'form': form},        context_instance=RequestContext(request))

什么是CSRF保护,我为什么要它?
这是一种攻击,敌人可以迫使你的用户执行令人讨厌的事情,例如转移资金,更改其电子邮件地址等等:

跨站点请求伪造(CSRF)是一种攻击,它迫使最终用户在当前已通过身份验证的Web应用程序上执行不需要的操作。CSRF攻击专门针对状态更改请求而不是数据窃取,因为攻击者无法看到对伪造请求的响应。在社交工程的一点帮助下(例如通过电子邮件或聊天发送链接),攻击者可能会欺骗Web应用程序的用户执行攻击者选择的操作。如果受害者是普通用户,则成功的CSRF攻击会迫使用户执行状态更改请求,例如转账,更改其电子邮件地址等。如果受害者是管理帐户,则CSRF可能会破坏整个Web应用程序。来源:Open Web应用程序安全性项目

即使你现在不关心这种事情,应用程序也可能会扩展,因此最佳实践是保持CSRF保护。

CSRF保护不应该是可选的吗?

它是可选的,但默认情况下处于启用状态(默认情况下包含CSRF中间件)。你可以将其关闭:

  • 通过用装饰csrf_excempt器装饰特定的视图。
  • 通过从以下位置的中间件列表中删除CSRF中间件来获取每个视图 settings.py
    如果在系统范围内将其关闭,则可以通过用装饰csrf_protect器装饰特定的视图来将其打开。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393863.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号