Django CSRF跨站请求伪造的禁用和使用
【摘要】 CSRF (Cross-site request forgery)
Django后台设置
全局和局部设置
# 全站使用
'django.middleware.csrf.CsrfViewMiddleware',
# 局部禁用 from django.views.decorators.csrf import csrf_exempt @csrf_exempt de...
CSRF (Cross-site request forgery)
Django后台设置
全局和局部设置
# 全站使用
'django.middleware.csrf.CsrfViewMiddleware',
# 局部禁用 from django.views.decorators.csrf import csrf_exempt @csrf_exempt def csrf_demo(request): if request.method == 'POST': return HttpResponse('POST OK') # 全站禁用 # 'django.middleware.csrf.CsrfViewMiddleware', # 局部使用 from django.views.decorators.csrf import csrf_protect @csrf_protect def csrf_demo(request): if request.method == 'POST': return HttpResponse('POST OK')
前端使用
Form表单中使用
Ajax请求使用
- 获取:Form表单 或 cookie
- 使用:data数据 或 headers
<!-- Form表单中使用 -->
<form method="POST" action="/csrf_demo.html"> {% csrf_token %} <input id="user" type="text" name="user" /> <input type="submit" value="提交"/>
</form>
<!-- Ajax中使用 -->
<script> function submitForm(){ // 从form 表单中获取 var token = $('input[name="csrfmiddlewaretoken"]').val(); // 从cookie 中获取 // var token = $.cookie('csrftoken'); var user = $('#user').val(); $.ajax({ url: '/csrf_demo.html', type: 'POST', // data 数据中使用 data: { "user":user, 'csrfmiddlewaretoken': token }, // headers 中使用 // headers:{'X-CSRFToken': token}, success:function(arg){ // do something } }) }
</script>
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/84143834
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)