django避免csrf_token验证
将所有的csrf_token验证都关闭是不安全的,因此考虑views.py文件中对单个函数关闭csrf_token验证。首先import关闭csrf_token验证的函数。
·
- 当网页通过自定义的post函数提交虚拟表单时,由于csrf_token的缺失,django服务器会拒绝接收这一post请求
<script>
function post(elements) {
var virtual_form = document.createElement("form");
virtual_form.action = '';//填写需要提交的目标url,django中如果是向自己发送post请求,直接填写''
virtual_form.method = "post";
virtual_form.style.display = "none";
for (var x in elements) {
var e = document.createElement("textarea");
e.name = x;
e.value = elements[x];
virtual_form.appendChild(e);
}
document.body.appendChild(virtual_form);
virtual_form.submit();
return virtual_form;
}
</script>
-
将所有的csrf_token验证都关闭是不安全的,因此考虑views.py文件中对单个函数关闭csrf_token验证
-
首先在views.py里import关闭csrf_token验证的函数
from django.views.decorators.csrf import csrf_exempt
- 在views.py文件里找到绑定提交事件的函数
def data_submit(req):
return render(
req,
'data_submit.html',
)
- 在函数前面加上@csrf_exempt
@csrf_exempt
def data_submit(req):
return render(
req,
'data_submit.html',
)
- 这样,对于data_submit这个函数就能免除csrf_token验证
- 同时,对于其他函数,csrf_token验证仍然有效
更多推荐
已为社区贡献2条内容
所有评论(0)