首页 > 其他 > 详细

django 笔记13 CSRF

时间:2018-06-24 15:43:43      阅读:168      评论:0      收藏:0      [点我收藏+]
CSRF
a.  CSRF原理

b.  无CSRF时存在隐患
c.  Form提交(CSRF)
d.  Ajax提交(CSRF)
    CSRF请求头 x-CSRFToken

    HTTP_X_CSRFToken django自动加的HTTP

中间件 django.middleware.csrf.CsrfViewMiddleware

局部:
    @csrf_protect 需要csrf认证  不需要在setting里添加django.middleware.csrf.CsrfViewMiddleware
    @csrf_exempt  不需要csrf认证

全局设置 局部设置  django.middleware.csrf.CsrfViewMiddleware
在views.py里
from django.views.decorators.csrf import csrf_exempt, csrf_protect

@csrf_exempt
def index(request):
    pass


在form表单下面添加
{% csrf_token %}

如果是以ajax提交方式
        $(function(){
            $.ajaxSetup({
            #GET HEAD OPTIONS TRACE 四种是不需要加csrftoken的 在这前需要做个判断
                beforeSend: function(xhr,settings){
                    xhr.setRequestHeader(X-CSRFtoken, $.cookie(csrftoken));
                }
            });

            $(#btn).click(function () {
                $.ajax({
                    url: /login/,
                    type:"GET",
                    data: {user: root, pwd: 123},
                    // headers: {‘X-CSRFtoken‘: $.cookie(‘csrftoken‘)},
                    success:function(arg){

                    }
                })
            });
        })

 

django 笔记13 CSRF

原文:https://www.cnblogs.com/Liang-jc/p/9220551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!