• ajax csrftoken


    CSRF(跨站请求伪造)

    背景知识:浏览器在发送请求的时候,会自动带上当前域名对应的cookie内容,发送给服务端,不管这个请求是来源A网站还是其它网站,只要请求的是A网站的链接,就会带上A网站的cookie。浏览器的同源策略并不能阻止CSRF攻击,因为浏览器不会停止js发送请求到服务端,只是在必要的时候拦截了响应的内容。或者说浏览器收到响应之前它不知道该不该拒绝。

    攻击过程:

    假设abc用户登录银行的网站进行操作, 同时也访问了攻击者预先设置好的网站。
    abc点击了攻击者网站的某一个链接,这个链接是http://www.bank.com/xxxx指向银行,银行服务器会根据这个链接携带的参数会进行转账操作。
    银行服务器在执行转账操作之前会进行SESSION验证是否登录, 但是由于abc已经登录了银行网站,攻击者的链接也是www.bank.com.所以攻击的链接就会携带session id到银行服务器。
    由于session id是正确的,所以银行会判断操作是由本人发起的,执行转账操作。

    django 表单

    <form>
        {% csrf_token %}
        <input type="password" name="password" value="">
    
    </form>

    ajax请求

    模板文件方式

    $.ajaxSetup({
                data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
            });
    
    $.ajax({
                type:"POST",
                url:"/basic/verifycode/",
                datatype:"json",
                data:{
                    "tel_phone":$("#tel_phone").val(),
                    "captcha":$("#captcha").val(),
                },
                async:true,
                success:function(result){
                },
                error:function(result){
                }
            });
    

      

    ajax自带

    var csrftoken = $("input[name$='csrfmiddlewaretoken']").val();
    $.ajax({
            type:"POST",
            url:"/basic/verifycode/",
            datatype:"json",
            data:{
                "tel_phone":$("#tel_phone").val(),
                 "captcha":$("#captcha").val(),
            },
            headers:{'X-CSRFToken':csrftoken },
            async:true,
            success:function(result){
                var s = eval(result);
                var msg = s.msg;
                console.log(msg);
            },
            error:function(result){
    
            }
    });
  • 相关阅读:
    OpenCV(一)
    python中的协程(一)
    python中的协程(三)
    ubuntu18.04 与 python
    js高级
    Django学习笔记5
    Django学习笔记6
    MongoDB 4.03简易使用教程
    python中的协程(二)
    js 词法分析
  • 原文地址:https://www.cnblogs.com/zenan/p/10655169.html
Copyright © 2020-2023  润新知