首页 > 其他 > 详细

CSRF的原理和基本使用

时间:2021-01-22 16:53:47      阅读:17      评论:0      收藏:0      [点我收藏+]
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 这个使用来强制键当前的函数设置此功能

CSRF的原理和基本使用

原文:https://www.cnblogs.com/KingOfCattle/p/14312921.html

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