您当前的位置: 首页 >  彭世瑜 django

Django CSRF跨站请求伪造的禁用和使用

彭世瑜 发布时间:2018-11-16 18:12:04 ,浏览量:3

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


    {% csrf_token %}
    
    





    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
            }
        })
    }


参考 django-csrf使用和禁用

关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 3浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0836s