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>
相关文章
|
4月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
97 7
|
13天前
|
存储 JavaScript 前端开发
Django的CSRF防攻击原理详解
Django的CSRF防攻击原理详解
|
27天前
|
存储 中间件 数据安全/隐私保护
Django的CSRF保护机制:保障用户数据安全
【4月更文挑战第15天】Django是一款具有内置CSRF保护的Python Web框架,通过CSRF中间件防止攻击者伪造用户请求。其机制包括:生成并自动添加到表单的CSRF令牌,服务器端的令牌验证以及每个用户会话的唯一令牌存储。为了增强防护,开发者应使用HTTPS,自定义令牌名称,限制跨域请求,并谨慎处理第三方库。Django的CSRF保护与最佳实践结合,能有效保障用户数据安全。
|
3月前
|
安全 数据安全/隐私保护
第二轮学习笔记:CSRF跨站请求伪造漏洞
第二轮学习笔记:CSRF跨站请求伪造漏洞
16 0
|
5月前
|
JSON 前端开发 JavaScript
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
|
5月前
|
JavaScript Python
django和vue 请求403 FORBIDDEN怎么办
在请求头里,添加X-CSRFToken, 取自浏览器里的cookie 再附上取cookie的源码
38 0
|
6月前
|
数据采集 存储 数据挖掘
Django爬虫:如何处理超过重试次数的请求以保障数据完整性
Django爬虫:如何处理超过重试次数的请求以保障数据完整性
|
6月前
|
安全 JavaScript 前端开发
22 Django模板 - csrf
22 Django模板 - csrf
27 0
|
8月前
|
安全 中间件 API
详解Django请求与响应:深入理解Web Http交互的核心机制
详解Django请求与响应:深入理解Web Http交互的核心机制
79 0
|
8月前
|
数据安全/隐私保护
CSRF(跨站请求伪造)
CSRF(跨站请求伪造)
76 0