首页 > 其他分享 >csrf问题

csrf问题

时间:2024-09-28 11:51:23浏览次数:10  
标签:function cookies name cookieValue 问题 cookie csrf document

用ajax如下

/**
 * 根据cookie的name获取对应的值
 * @param name
 * @returns {null}
 */
function getCookie(name) {
    let cookieValue = null;
    if (document.cookie && document.cookie !== '') {
        const cookies = document.cookie.split(';');
        for (let i = 0; i < cookies.length; i++) {
            const cookie = cookies[i].trim();
            // 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 csrfSafeMethod(method) {
    // these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}

$.ajaxSetup({
    beforeSend: function (xhr, settings) {
        if (!csrfSafeMethod(settings.type)) {
            xhr.setRequestHeader("X-CSRFTOKEN", getCookie('csrftoken'));
        }
    }
})

在页面上引入即可:

<script src="{% static 'js/csrf.js' %}"></script>

标签:function,cookies,name,cookieValue,问题,cookie,csrf,document
From: https://www.cnblogs.com/sherwin1995/p/18437195

相关文章

  • 【Qt】编写第一个Qt程序 && 对象树 && 内存泄漏问题探讨
    编写第一个Qt程序1.使用图形化界面生成2.使用代码生成3.对象树3.1什么是对象树3.2验证对象树4.解决编码问题1.使用图形化界面生成创建好一个项目后,我们可以点击widget.ui进入图形化界面设计,可以直接通过拖拽的方式进行添加。通过拖拽的方式进行设计此......
  • 09 模块导入规则 寻找模块 常见问题
    模块导入规则在python内部导入模块时,必须要遵循他的规则,必须去指定的目录中找py文件。寻找模块一般就三个位置优先在当前运行脚本的同级目录 【一般问题比较多】python的安装目录【内置模块】python的安装目录+site-packages【第三方模......
  • Echarts图表知识点汇总及请求django服务器后端跨域问题解决
    1.引入echartsvue3中通过npm引入:npminstallecharts--saveimport*asechartsfrom'echarts';//基于准备好的dom,初始化echarts实例varmyChart=echarts.init(document.getElementById('main'));//绘制图表myChart.setOption({title:{text:'ECha......
  • Java中浮点数运算存在的精度问题以及解决方法
    观察以下一段代码,相信小朋友都可以一眼看出答案,但是计算机给出的答案是这样吗?publicclassTestDouble{publicstaticvoidmain(Stringargs[]){System.out.println("0.05+0.01="+(0.05+0.01));System.out.println("1.0-0.42="+(1.0-0.42));System.out.pr......
  • [转]boost使用之编译库及遇到的问题
    最近因为在学习网络编程相关的东西,准备学习一下boost,毕竟原生的网络编程太麻烦。看了一下其实windows下想使用起来很简单,就是下载库,然后运行脚本,然后运行exe库就出来。在把头文件和库的目录包含进去就可以了。在此详细记录一下:0、预装准备电脑WIN10系统,已经安装了VS2010。1、下......
  • 分库分表还是分布式?如何用 OceanBase的单机分布式一体化从根本上解决问题
    随着企业业务规模的不断增长,单机集中式的数据库系统逐渐难以承载企业日益增长的数据存储与处理需求。因此,MySQL的分库分表方案成为了众多企业应对数据存储量激增及数据处理能力需求扩张的“止痛药”。尽管这一方案短期内有效缓解了企业面临的大规模数据处理压力,但同时也引发了......
  • 关于kratos proto 生成pb.go的一些报错,问题
    有诸如这类报错go:ai-ws-session-service/cmd/ai-ws-session-serviceimportsgithub.com/aliyun-sls/opentelemetry-go-provider-sls/providerimportsgo.opentelemetry.io/otel/metric/global:modulego.opentelemetry.io/otel/metric@latestfound(v1.30.0),butdoesnot......
  • 26,【经典大厂面试题】【连续问题的困难题】Python数分之Pandas训练,力扣,2173. 最多连胜
    学习:知识的初次邂逅复习:知识的温故知新练习:知识的实践应用目录一,原题力扣链接二,题干三,建表语句四,分析五,SQL解答六,验证七,知识点总结一,原题力扣链接.-力扣(LeetCode)二,题干表: Matches+-------------+------+|ColumnName|Type|+-------------+-----......
  • 《破晓传说》d3dcompiler_43.dll缺失启动遇阻?d3dcompiler_43.dll丢失问题全解析与解决
    《破晓传说》在启动过程中遇到d3dcompiler_43.dll缺失的问题,确实会导致游戏无法正常运行。这个问题通常与DirectX组件的完整性或兼容性有关。以下是对d3dcompiler_43.dll丢失问题的全解析与解决方案:问题解析d3dcompiler_43.dll是什么?d3dcompiler_43.dll是DirectX的一部分,它......
  • springcloud的gateway处理跨域问题
    gateway处理跨域问题,有两种方式,一种是配置文件,另外一种是代码配置文件spring:cloud:gateway:globalcors:cors-configurations:'[/**]':allowCredentials:trueallowedMethods:"*"allowedHeaders:......