zoukankan      html  css  js  c++  java
  • CSRF的原理和基本使用

    CSRF的原理和基本使用
    什么是CSRF:CSRF是为了防止跨站请求伪造,当用户第一次发请GET请求时后台会给前端发送一个加密字符串,下次用户发请POST请求时就需要带这这个加密字符串发送
    CSRF的使用:在setting.py中间件中的django.middleware.csrf.CsrfViewMiddleware来完成这个功能biand
    form表单发起请求在请求:在表单里面加上{% csrf_token %}就行
    ajax的使用:对于某个请求设置,在请求头中加入headers: {'X-CSRFtoken': $.cookie('csrftoken')},
    
    $('#btn1').click(function () {
                    $.ajax({
                        url: '/login/',
                        type:"GET",
                        data: {'user': 'root', 'pwd': '123'},
                         headers: {'X-CSRFtoken': $.cookie('csrftoken')},
                        success:function(arg){
    
                        }
                    })
                });
    
    对所有的ajax的post请求进行设置
    
    function csrfSafeMethod(method) {
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));  //对GET|HEAD|OPTIONS|TRACE不进行设置
    }
    $.ajaxSetup({
    beforeSend: function(xhr, settings) {
    if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
    xhr.setRequestHeader("X-CSRFToken", csrftoken);
    }
    }
    });
    
    对某个进行设置或者不设置
    
    from django.views.decorators.csrf import csrf_exempt,csrf_protect
    @csrf_exempt 这个装饰器是用来取消当前函数的csrf功能
    @csrf_protect 这个使用来强制键当前的函数设置此功能
    
  • 相关阅读:
    php 图片剪切
    mysql 官方docker镜像使用教程
    centos7 取消自动锁屏
    nginx配置反向代理示例
    nginx 官方docker镜像使用教程
    centos 下nginx源码编译安装
    nginx rewrite规则实例讲解
    requests.session()会话保持
    我对网络IO的理解
    日常运维--rsync同步工具
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/14312921.html
Copyright © 2011-2022 走看看