CSRF verification failed. Request aborted.的解决办法
{%csrf_token%}(踩坑必看)
简介
在django中我们需要在templates的form中加入{%csrf_token%}这串内容,它的作用是当我们get表单页面时,服务器返回页面的同时也会向前端返回一串随机字符,post提交时服务器会验证这串字符来确保用户是在服务端返回的表单页面中提交的数据,防止有人通过例如jquery脚本向某个url不断提交数据,是一种数据提交的验证机制。
用途
跨站点请求伪造(CSRF)保护
CSRF攻击允许恶意用户使用另一个用户的凭据执行操作,而不需要该用户的知情或同意。
Django内置了对大多数csrf攻击的保护,只要您有启用并使用在适当的情况下。然而,与任何缓解技术一样,也有局限性。例如,可以在全局或特定视图中禁用CSRF模块。只有当你知道自己在做什么时,你才应该这样做。
就是说为了防止你做的网站挂网后被不怀好意的人利用攻击手段篡改了你的请求操作,让服务器执行一些攻击者想要执行的操作以达到某种目的而设立的安全机制。
使用
<form>
{%csrf_token%}
</form>
注意:必须在form表单内部
使用后无效果的解决方法
一般情况我们使用pycharm创建一个DJango项目时,在项目根目录下的同名文件夹的setting.py文件里我们通常都能看到有一条设置
'django.middleware.csrf.CsrfViewMiddleware'
默认创建完django项目这条设置会默认启用,为什么会启用?(想快点解决问题的可以直接跳过该部分)
那么检查完上述settings.py文件里的设置未被注释,表单也设置了{% csrf_token %} 测试表单时还是报403错误
可以看看以下笔者自己学习过程中解决的方法:
- 检查{% csrf_token %}放入位置是否正确
<form >
{% csrf_token %}
</form>
//转载注明出处:https://www.cnblogs.com/Songjunxiang/p/13907589.html
欢迎提出问题,我会看见之后立刻改正。
邮箱:2247256783@qq.com
QQ(添加请注明原因):2247256783