• 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){
    
            }
    });
  • 相关阅读:
    C#实现带阴历显示的日期代码
    ASP.NET实现支付宝接口功能
    网站添加手机短信功能
    ASP.NET支付宝扫码即时到账支付开发流程(序言)
    ASP.NET支付宝扫码即时到账支付开发流程(下)
    ASP.NET支付宝扫码即时到账支付开发流程(上)
    如何把自己写的程序加入到开机启动项(Windows)
    C#操作注册表
    重温SQL——行转列,列转行
    Unity Hub破解
  • 原文地址:https://www.cnblogs.com/zenan/p/10655169.html
Copyright © 2020-2023  润新知