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>

参考

django-csrf使用和禁用

相关文章
|
22天前
|
JSON 前端开发 数据安全/隐私保护
Django入门到放弃之CSRF_TOKEN
Django入门到放弃之CSRF_TOKEN
|
28天前
|
存储 前端开发 Serverless
中后台前端开发问题之Django项目中接收和处理用户的抽奖请求如何解决
中后台前端开发问题之Django项目中接收和处理用户的抽奖请求如何解决
12 0
|
4月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
223 7
|
3月前
|
前端开发 Python
Django框架中Ajax GET与POST请求的实战应用
Django框架中Ajax GET与POST请求的实战应用
|
3月前
|
JSON 缓存 前端开发
Django视图层探索:GET/POST请求处理、参数传递与响应方式详解
Django视图层探索:GET/POST请求处理、参数传递与响应方式详解
|
3月前
|
前端开发 JavaScript 安全
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
|
3月前
|
JSON 前端开发 JavaScript
Django——Ajax请求
Django——Ajax请求
|
4月前
|
存储 JavaScript 前端开发
Django的CSRF防攻击原理详解
Django的CSRF防攻击原理详解
|
4月前
|
存储 中间件 数据安全/隐私保护
Django的CSRF保护机制:保障用户数据安全
【4月更文挑战第15天】Django是一款具有内置CSRF保护的Python Web框架,通过CSRF中间件防止攻击者伪造用户请求。其机制包括:生成并自动添加到表单的CSRF令牌,服务器端的令牌验证以及每个用户会话的唯一令牌存储。为了增强防护,开发者应使用HTTPS,自定义令牌名称,限制跨域请求,并谨慎处理第三方库。Django的CSRF保护与最佳实践结合,能有效保障用户数据安全。
|
4月前
|
JSON 前端开发 JavaScript
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求