zoukankan      html  css  js  c++  java
  • django 笔记13 CSRF

    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){
    
                        }
                    })
                });
            })
  • 相关阅读:
    opencast的docker安装
    编译openwrt_MT7688_hiwooya
    linux中mysql自动同步
    网站服务器迁移
    vtigercrm安装
    ixcache的蜜汁突发故障
    20180628
    pip3 install -r requirements.txt安装超时解决方法
    pytest文档29-allure-pytest
    pytest框架
  • 原文地址:https://www.cnblogs.com/Liang-jc/p/9220551.html
Copyright © 2011-2022 走看看