Django CSRF跨站请求伪造的禁用和使用

简介: Django CSRF跨站请求伪造的禁用和使用

CSRF (Cross-site request forgery)


Django后台设置

全局和局部设置

# 全站使用
  'django.middleware.csrf.CsrfViewMiddleware',
# 局部禁用
    from django.views.decorators.csrf import csrf_exempt
    @csrf_exempt
    def csrf_demo(request):
        if request.method == 'POST':
          return HttpResponse('POST OK')
# 全站禁用
    # 'django.middleware.csrf.CsrfViewMiddleware',
# 局部使用  
    from django.views.decorators.csrf import csrf_protect
    @csrf_protect
     def csrf_demo(request):
        if request.method == 'POST':
          return HttpResponse('POST OK')

前端使用

Form表单中使用

Ajax请求使用


获取:Form表单 或 cookie
使用:data数据 或 headers
<!-- Form表单中使用 -->
<form method="POST" action="/csrf_demo.html">
    {% csrf_token %}
    <input id="user" type="text" name="user" />
    <input type="submit" value="提交"/>
</form>
<!-- Ajax中使用 -->
<script>
    function submitForm(){
      // 从form 表单中获取
        var token = $('input[name="csrfmiddlewaretoken"]').val();
  // 从cookie 中获取
        // var token = $.cookie('csrftoken');
        var user = $('#user').val();
        $.ajax({
            url: '/csrf_demo.html',
            type: 'POST',
            // data 数据中使用
            data: { 
              "user":user,
              'csrfmiddlewaretoken': token
            },
            // headers 中使用
            // headers:{'X-CSRFToken': token},
            success:function(arg){
                // do something
            }
        })
    }
</script>
相关文章
|
SQL 存储 安全
Web安全-CSRF跨站请求伪造
Web安全-CSRF跨站请求伪造
658 4
|
JSON 前端开发 数据安全/隐私保护
Django入门到放弃之CSRF_TOKEN
Django入门到放弃之CSRF_TOKEN
|
存储 JavaScript 前端开发
Django的CSRF防攻击原理详解
Django的CSRF防攻击原理详解
446 3
|
前端开发 JavaScript 安全
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
|
前端开发 安全 Go
CSRF 实验:更改请求方式绕过验证
CSRF 实验:更改请求方式绕过验证
|
前端开发 Python
Django CSRF跨站请求伪造的禁用和使用
Django CSRF跨站请求伪造的禁用和使用
218 0
|
11月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
590 1
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
910 45
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
888 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
570 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发