首页 > 其他分享 >Django开发中csrf 的作用和含义以及用法

Django开发中csrf 的作用和含义以及用法

时间:2023-12-06 17:01:35浏览次数:32  
标签:请求 用户 用法 token Token CSRF Django csrf

在 Django 中,CSRF 指的是跨站请求伪造(Cross-Site Request Forgery)。这是一种网络入侵方法,入侵者诱使已认证的用户在他们不知情的情况下发送伪造的请求,比如在用户登录某个受信任网站后,在另一个标签页中访问恶意网站,恶意网站上的脚本可以发送请求到受信任网站,而这个请求会携带用户的验证信息(比如Cookies),从而执行未经用户授权的操作。

为了防范 CSRF 入侵,Django 提供了一个内置的防护机制。这个机制主要包括:

  1. CSRF Token:Django 会为每个用户的会话生成一个唯一的 CSRF token。这个 token 是一个随机生成的字符串,用于验证发起请求的客户端是合法的。
  2. Token 验证:在进行敏感操作(如表单提交)时,Django 要求前端页面包含这个 CSRF token。当请求到达服务器时,Django 会验证请求中的 token 是否与用户会话中的 token 一致。如果不一致或缺失,Django 会拒绝这个请求。
  3. 在模板中使用 CSRF Token:在 Django 模板中,你需要在每个 <form> 标签内添加 {% csrf_token %},这会自动插入隐藏的输入字段,包含当前会话的 CSRF token。
<form method="post">
    {% csrf_token %}
    <!-- 表单字段 -->
</form>
  1. 中间件:Django 的 CSRF 保护是通过中间件实现的。CsrfViewMiddleware 是默认启用的,负责检查 POST 请求中的 CSRF token。

通过这些措施,Django 能够有效防止 CSRF 入侵,确保应用的安全性。需要注意的是,为了全面保护你的应用,你应该总是启用并正确使用 Django 提供的 CSRF 防护机制。

标签:请求,用户,用法,token,Token,CSRF,Django,csrf
From: https://blog.51cto.com/u_13188203/8707037

相关文章

  • between and的用法
    BETWEEN指定测试范围。语法test_expression[NOT]BETWEENbegin_expressionANDend_expression参数test_expression是用来在由begin_expression和end_expression定义的范围内进行测试的表达式。test_expression必须与begin_expression和end_expression具有相同......
  • Guava Preconditions类的各种用法
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。GuavaPreconditions类提供静态方法列表,用于检查是否使用有效参数值调用方法或构造函数。如果前提条件失败,则会抛出指定的异常。前置依赖引入pom<dependency><groupId>com.google.guava</g......
  • 技术博客:Vue中各种混淆用法汇总
    ​ 技术博客:Vue中各种混淆用法汇总 摘要本文主要介绍了在Vue中使用的一些常见混淆用法,包括newVue()、exportdefault{}、createApp()、Vue.component、Vue3注册全局组件、Vue.use()等,以及如何使用混淆器对代码进行加固,保护应用安全。引言在Vue开发中,对于新手来说,常常会......
  • STL用法
    1.vector数组从尾部插入,尾部删除。相关用法代码如下:1//1.尾部插入及删除数字2vec2.push_back(1);//尾部插入元素3vec2.pop_back()//删除尾部元素45//2.使用下标访问元素,6cout<<vec2[0]<<endl;//记住下标是从0开始的......
  • System.Diagnostics.Process.Start 用法
    原文链接:https://blog.csdn.net/polloo2012/article/details/82110642System.Diagnostics.Process.Start();能做什么呢?它主要有以下几个功能:1、打开某个链接网址(弹窗)。2、定位打开某个文件目录。3、打开系统特殊文件夹,如“控制面板”等。那么它是怎么实现这几个功能的呢?在讲......
  • DjangoORM语法
    ORM语法-配置django中与数据库映射的关系,不需要写原始sql语句,而是定义模型类,操作模型完成对数据库进行增删改查等操作。o指类对象的意思r指数据库表的意思m指映射的意思orm的优点数据库模型定义在一个地方,方便维护orm有现成的工具,很多功能自动完成,比如数据库消除,预处......
  • awk常见用法(更新中)
    来源十分钟学习awk命令常用将Linux命令输出结果的第n列的所有内容过滤出来:ps|awk'{print$1}'这个列的分隔符默认是会把空格给排除掉。如果是类似于path变量这种,使用冒号作为分割,可以使用-F选项:awk-F':''{print$1}'打印多列则将以上print部分修改为:ps|......
  • django02
    django小白必会三板斧#启动django项目之后如何添加更多的功能回想自己编写的web框架如果要添加功能就去urls.py和views.py#django自带重启功能当识别到项目中代码有变化之后隔段时间会自动重启但是有时候较慢#与浏览器打交道的视图函数都应该有返回值常见......
  • mapstruct 高级用法自定义转换规则
    https://svip888.blog.csdn.net/article/details/115706803?spm=1001.2101.3001.6650.15&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-15-115706803-blog-117566307.235%5Ev39%5Epc_relevant_3m_sort_dl_base3&depth_1-utm_sourc......
  • Django中ForeignKey函数详解
    在Django中,ForeignKey是一个数据库模型字段,用于创建多对一(many-to-one)的关系。它实质上是数据库表之间的一个链接,指向另一个模型的实例。在Django的ORM(对象关系映射)系统中,ForeignKey字段非常重要,因为它允许模型间的数据关联和交互。基本用法在Django模型中定义ForeignKey......