精华内容
下载资源
问答
  • Django:Ajax与csrf_token

    2019-12-20 08:52:56
    起因:Ajax提示403错误 闲言碎语:据课程结束还有一周多,js杀我,要加油加油。 CSRF(Cross Site Request Forgery protection),中文简称跨站请求伪造。 django为用户实现防止跨站请求伪造的功能,通过中间件 django...

    起因:Ajax提示403错误
    闲言碎语:据课程结束还有一周多,js杀我,要加油加油。

    CSRF(Cross Site Request Forgery protection),中文简称跨站请求伪造。

    django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。

    全局:

    中间件 django.middleware.csrf.CsrfViewMiddleware

    局部:

    @csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件。

    @csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件。

    注意:from django.views.decorators.csrf import csrf_exempt,csrf_protect

    原理:django 第一次响应来自某个客户端的请求时,会在服务器端随机生成一个 token,把这个 token 放在 cookie 里。然后每次 POST 请求都会带上这个 token,这样就能避免被 CSRF 攻击。

    通过form表单提交
    在这里插入图片描述
    django中直接添加{% csrf_token%}
    当查看页面源码时可以查看到有一个隐藏的input,示例:
    在这里插入图片描述
    通过ajax提交

    因为cookie中同样存在csrftoken,所以可以在js中通过:

    $.cooke(“cstftoken”)获取

    如果通过ajax进行提交数据,这里提交的csrftoken是通过请求头中存放,需要提交一个字典类型的数据,即这个时候需要一个key。

    在views中的xxx函数中:
    from django.conf import settings

    然后print(settings.CSRF_HEADER_NAME)

    这里需要注意一个问题,这里导入的settings并不是我们在项目文件下看到的settings.py文件,这里是是一个全局的settings配置,而当我们在项目目录下的settings.py中配置的时候,我们添加的配置则会覆盖全局settings中的配置。

    print(settings.CSRF_HEADER_NAME)打印的内容为:HTTP_X_CSRFTOKEN

    这里的HTTP_X_CSRFTOKEN是django在X_CSRF的前面添加了HTTP_,所以实际传递的是就是X_CSRFtoken,而在前端页面的ajax传递的时候由于不能使用下划线所以传递的是X_CSRFtoken。

    展开全文
  • 方式一:$.post({url: '/get_result/',data: {value0: $('#v1').val(),value1: $('#v2').val(),csrfmiddlewaretoken: '{{ csrf_token }}'},success: function (data) {if (data) {$('#v3').val(data);swal("操作成功...

    方式一:

    $.post({

    url: '/get_result/',

    data: {

    value0: $('#v1').val(),

    value1: $('#v2').val(),

    csrfmiddlewaretoken: '{{ csrf_token }}'

    },

    success: function (data) {

    if (data) {

    $('#v3').val(data);

    swal("操作成功!", "成功算出结果","success");

    }

    })

    方式二:

    {% csrf_token %}

    + =

    $.post({

    url: '/get_result/',

    data: {

    value0: $('#v1').val(),

    value1: $('#v2').val(),

    csrfmiddlewaretoken:$('[name="csrfmiddlewaretoken"]').val()

    },

    success: function (data) {

    if (data) {

    $('#v3').val(data);

    swal("操作成功!", "成功算出结果", "success");

    }

    }

    })

    方式三:

    $.post({

    url: '/get_result/',

    headers:{'X-CSRFToken':$.cookie('csrftoken')},

    data: {

    value0: $('#v1').val(),

    value1: $('#v2').val()

    },

    success: function (data) {

    if (data) {

    $('#v3').val(data);

    swal("操作成功!", "成功算出结果", "success");

    }

    }

    })

    ajax操作json的三种方式

    一. 什么是json? 1. JSON是一种轻量级的数据交换格式 2. JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在 ...

    使用ajax发送文件的三种方式及预览图片的方法,上传按钮美化

    后端代码 def upload(request): if request.method == "GET": return render(request,'upload.html') ...

    ajax数据提交数据的三种方式和jquery的事件委托

    ajax数据提交数据的三种方式 1.只是字符串或数字 $.ajax({ url: 'http//www.baidu.com', type: 'GET/POST', data: {'k1':'v1'}, ...

    Ajax上传数据和上传文件(三种方式)

    Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式)

    HTML5实现动画三种方式

    编者注:作者以一个运动的小车为例子,讲述了三种实现HTML5动画的方式,思路清晰,动画不仅仅是canvas,还有css3和javascript.通过合理的选择,来实现最优的实现. PS:由于显卡.录制 ...

    JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

    彻底了解构建 JSON 字符串的三种方式

    展开全文
  • 将以下代码写入到csrf_token_new.js,然后在html页面中加入该js,即可避免出现csrt错误/*====================django ajax ======*/jQuery(document).ajaxSend(function(event,xhr,settings){functiongetCookie(name...

    将以下代码写入到csrf_token_new.js,然后在html页面中加入该js,即可避免出现csrt错误

    /*====================django ajax ======*/jQuery(document).ajaxSend(function(event, xhr, settings) {

    function getCookie(name) {

    var cookieValue = null;

    if (document.cookie && document.cookie != '') {

    var cookies = document.cookie.split(';');

    for (var i = 0; i 

    var cookie = jQuery.trim(cookies[i]);

    // Does this cookie string begin with the name we want?

    if (cookie.substring(0, name.length + 1) == (name + '=')) {

    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));

    break;

    }

    }

    }

    return cookieValue;

    }

    function sameOrigin(url) {

    // url could be relative or scheme relative or absolute

    var host = document.location.host; // host + port

    var protocol = document.location.protocol;

    var sr_origin = '//' + host;

    var origin = protocol + sr_origin;

    // Allow absolute or scheme relative URLs to same origin

    return (url == origin || url.slice(0, origin.length + 1) == origin + '/') ||

    (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + '/') ||

    // or any other URL that isn't scheme relative or absolute i.e relative.

    !(/^(\/\/|http:|https:).*/.test(url));

    }

    function safeMethod(method) {

    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));

    }

    if (!safeMethod(settings.type) && sameOrigin(settings.url)) {

    xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));

    }

    });

    /*===============================django ajax end===*/

    展开全文
  • django ajax 发送csrf

    2019-08-15 16:21:05
    django ajax 发送csrf 今天帮人修正了一下他django项目的csrf报错,主要是需要在ajax发送给后端的时候添加CSRF,这和浏览器有一定的关系,不是所有的浏览器都会报错 下载Jquery.cookie ...ajax请求 ...

    django ajax 发送csrf

    今天帮人修正了一下他django项目的csrf报错,主要是需要在ajax发送给后端的时候添加CSRF,这和浏览器有一定的关系,不是所有的浏览器都会报错

    下载Jquery.cookie

    http://plugins.jquery.com/cookie/

    ajax请求

    <script src="../jquery.cookie.js"></script> 
    <script>
    function sendcsrf(){
         $.ajax({
    		.........
            headers:{"X-CSRFToken":$.cookie('csrftoken')},
    		..........
        })
    }
    </script>
    
    展开全文
  • I am trying to figure out how to use ajax with django, and i keep running into the 403 error. (which means as far as i know, that something with my CSRF token goes wrong.But i cant figure out what i d...
  • //在View中@functions{public string ToKenHeaderValue(){string cookieToken,fromToken;AntiForgery.GetTokens(null,out cookieToken,out fromToken);return cookieToken+":"+...}}$function({......$.ajax("...
  • AJAX, CSRF & CORS

    2019-01-10 22:48:50
    使用 AJAXCSRF 和 CORS (Working with AJAX, CSRF &amp; CORS) “仔细查看您自己网站上可能存在的 CSRF / XSRF 漏洞。它们是最糟糕的一种漏洞——很容易被攻击者利用,但对软件开发人员来说却不那么直观易懂,...
  • ajax 发送 csrf 信息

    2019-06-13 22:28:22
    Flask 使用 csrf 保护后,需对前端做出以下更改: 在<meta>标签中渲染 CSRF 令牌: <meta name="csrf-token" content="{{ csrf_token() }}"> 最后在响应的js文件中,必须添加以下代码,为其添加X-...
  • ajax解决csrf

    千次阅读 2018-04-08 23:12:23
    ajax跨站请求 方式一 $.ajax({ url: "/cookie_ajax/", type: "POST", data: { "username": "Q1mi", "password": 123456, "csrfmiddlewaretoken...
  • django+jquery ajax post csrf 配置:{% csrf_token %}var csrftoken = jQuery(“[name=csrfmiddlewaretoken]”).val();function docker_build_ver(url,pk) {bootbox.prompt({size: “small”,title: “请输入版本号...
  • 如果使用ajax传输数据,需要在AJAX中要使用csrf保护。一般而言,即在后端已经使用了CSRFProtect(app)的前提下,如果想使用ajax,避免400的报错,可以前端的表单里引入标签,如下所示login.html然后在js中的ajax代码块...
  • 而不是通过某个插件): {% csrf_token %}Please sign inLogin:Password:Sign in下面是通过requests module执行远程身份验证的相应视图:^{pr2}${js{Ajax成功的原因是,{csa3}为了其他目的,我可以通过远程Javascript...
  • 但每次它给CSRF令牌错误。每次post请求都返回403。我不知道我错在哪里。在我在下面写我的代码。其余代码可以在in this repo中找到。在API输入视图.py在class UserList(APIView):def post(self, request, format=None...
  • Django AjaxCSRF

    2018-12-17 17:56:13
    文章目录JSONAjaxAjax与csrf方式一方式二文件上传 JSON JSON是指JavaScript对象表示法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON.parse():将一个JSON字符串转为JavaScript对象 ...
  • 小编典典好的,经过几个...如果使用AJAX发出请求,则可以将CSRF令牌放在HTML页面中,然后使用Csrf-Token标题将其添加到请求中。然后没有代码或示例。谢谢玩。非常具有描述性。无论如何,这是如何:在你的view.htm...
  • flask的ajaxcsrf代码

    2019-08-08 22:45:12
    1、ajax前端代码 Ajax本身是一门独立的技术,是实现前后端数据...先根据id离焦或聚焦等事件触发js,声明路由和传参,post请求要在传递的参数里添加“csrf_token:'{{csrf_token}}'” 然后写ajax的固定语法 $.ajax(...
  • django ajax请求 csrf验证失败

    千次阅读 2015-12-02 02:26:38
    如何解决django ajax请求 csrf验证失败的问题: 原文链接:http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request 大概意思是:django官方给出的方法都不起作用, 高手给了...
  • 使用AJAX更改CSRF令牌

    2013-10-20 04:48:44
    // reset CSRF token with new token generated after sign out -- to allow AJAX with CSRF protection $('meta[name="csrf-token"]').attr('content', data.csrfToken); } </code></pre> <p>Here's the weird ...
  • rails ajax and csrf

    2016-10-17 23:30:51
    1. html 2. js var csrf = $("input#this id").val(); headers: {  'X-CSRF-Token': csrf  } # the headers set in ajax
  • Phalcon ajaxcsrf 提交方法

    千次阅读 2016-11-11 10:38:28
    描述在Phalcon中使用ajax提交post时如果正确使用csrf token防止csrf攻击
  • YII2_ajax自动csrf

    2017-01-30 03:54:00
    YII2_ajax自动csrf function ajax(option){ if(option.type && option.type.toLowerCase() == 'post'){//这里要修改 var csrfToken = $('meta[name="_csrf"]').attr('c...
  • Django Ajax with CSRF

    千次阅读 2011-09-29 23:36:11
    http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request
  • webix ajax post CSRF Token

    2020-06-24 21:34:23
    提交表单,不可避免要用到CSRF。 html文件中,引入csrf_token,生成csrftoken {% csrf_token %} 在webix.ready函数体中,添加: webix.attachEvent('onBeforeAjax', function (mode, url, data, request, headers)...
  • ajaxcsrf_token

    2017-09-22 15:05:35
    Title {% csrf_token %} Ajax提交 function ajaxSubmit() { $.ajax({ url: 'icbc.html', type: 'POST', data: {'k1': 'v1',
  • Django框架 之 基于Ajaxcsrf跨站请求伪造 ajaxcsrf跨站请求伪造 方式一 1 2 3 $.ajaxSetup({ data: {csrfmiddlewaretoken:'{{ csrf_token }}'}, });  方式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,605
精华内容 8,242
关键字:

ajax与csrf