ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CSRF的原理和基本使用

2021-01-22 14:05:02  阅读:161  来源: 互联网

标签:基本 function CSRF GET 设置 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 这个使用来强制键当前的函数设置此功能

标签:基本,function,CSRF,GET,设置,csrf,原理,请求
来源: https://www.cnblogs.com/KingOfCattle/p/14312921.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有