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>
相关文章
|
22天前
|
前端开发 安全 Go
CSRF 实验:更改请求方式绕过验证
CSRF 实验:更改请求方式绕过验证
|
1月前
|
存储 中间件 数据安全/隐私保护
Django的CSRF保护机制:保障用户数据安全
【4月更文挑战第15天】Django是一款具有内置CSRF保护的Python Web框架,通过CSRF中间件防止攻击者伪造用户请求。其机制包括:生成并自动添加到表单的CSRF令牌,服务器端的令牌验证以及每个用户会话的唯一令牌存储。为了增强防护,开发者应使用HTTPS,自定义令牌名称,限制跨域请求,并谨慎处理第三方库。Django的CSRF保护与最佳实践结合,能有效保障用户数据安全。
|
1月前
|
安全 数据安全/隐私保护
第二轮学习笔记:CSRF跨站请求伪造漏洞
第二轮学习笔记:CSRF跨站请求伪造漏洞
21 0
|
7月前
|
安全 JavaScript 前端开发
22 Django模板 - csrf
22 Django模板 - csrf
29 0
|
9月前
|
数据安全/隐私保护
CSRF(跨站请求伪造)
CSRF(跨站请求伪造)
84 0
|
10月前
|
安全 中间件 数据安全/隐私保护
Django中防范CSRF跨站点请求伪造攻击
Django中防范CSRF跨站点请求伪造攻击
|
16小时前
|
存储 安全 JavaScript
【网络安全】CSRF攻击详解
【网络安全】CSRF攻击详解
|
2天前
|
安全 前端开发 Java
CSRF 攻击以及如何使用 Spring Security 预防攻击
【6月更文挑战第15天】CSRF 是指跨站请求伪造,是 Cross-site request forgery 的简称,有些地方也简写为 XSRF。
60 1
|
1月前
|
存储 JavaScript 前端开发
Django的CSRF防攻击原理详解
Django的CSRF防攻击原理详解
|
1月前
|
安全 前端开发 JavaScript
在Python Web开发过程中:Web框架相关,如何在Web应用中防止CSRF攻击?
在Python Web开发中防范CSRF攻击的关键措施包括:验证HTTP Referer字段、使用CSRF token、自定义HTTP头验证、利用Web框架的防护机制(如Django的`{% csrf_token %}`)、Ajax请求时添加token、设置安全会话cookie及教育用户提高安全意识。定期进行安全审计和测试以应对新威胁。组合运用这些方法能有效提升应用安全性。
27 0