首页 > 其他分享 >csrf与auth认证

csrf与auth认证

时间:2022-12-27 22:22:08浏览次数:42  
标签:protect request 校验 auth 认证 csrf method

目录

csrf与auth认证

今日内容概要

  • csrf跨站请求伪造
  • csrf校验策略
  • csrf相关装饰器
  • auth认证模块
  • auth认证相关模块及操作
  • 扩展auth_user表

今日内容详细

csrf跨站请求伪造

钓鱼网站:模仿一个正规的网站 让用户在该网站上做操作 但是操作的结果会影响到用户正常的网站账户 但是其中有一些猫腻
	eg:英语四六级考试需要网上先缴费 但是你会发现卡里的前扣了但是却交到了一个莫名其妙的账户 并不是真正的四六级官方账户
    
模拟钓鱼网站案例:转账案例
	内部隐藏标签
    
思考:如何区分真假网站页面发送的请求

csrf校验策略

在提交数据的位置添加唯一标识

1.form表单csrf策略
	form表单内部添加{% csrf_token %}
2.ajax请求csrf策略
	// 方式1:自己动手取值 较为繁琐
   {#data:{'csrfmiddlewaretoken':$('input[name="csrfmiddlewaretoken"]').val()},#}
   // 方式2:利用模板语法自动获取(一定要用引号引起来)
   {#data:{ 'csrfmiddlewaretoken':'{{ csrf_token }}','username':'jason'},#}
   // 方式3:直接引入一个js脚本即可(官网提供的)
 	参考:https://www.cnblogs.com/Dominic-Ji/p/9234099.html

csrf相关装饰器

整个django项目都校验csrf 但是某些个视图函数\类不想校验
整个django项目都不校验csrf 但是某些个视图函数\类需要校验

FBV添加装饰器的方式(与正常函数添加装饰器一致)
from django.views.decorators.csrf import csrf_exempt, csrf_protect
# @csrf_exempt
@csrf_protect
def transfer_func(request):pass

CBV添加装饰器的方式(与正常情况不一样 需要注意)
主要有三种方式
# @method_decorator(csrf_protect, name='post')  # 方式2:单独生效
class MyView(views.View):
    @method_decorator(csrf_protect)  # 方式3:整个类中生效
    def dispatch(self, request, *args, **kwargs):
        return super().dispatch(request, *args, **kwargs)

    # @method_decorator(csrf_protect)  # 方式1:单独生效
    def post(self, request):
        return HttpResponse('from cbv post view')
  
注意有一个装饰器是特例只能有一种添加方式>>>:csrf_exempt
 	只有在dispatch方法添加才会生效
'''
from django.shortcuts import render, HttpResponse, redirect

# Create your views here.
from django.views.decorators.csrf import csrf_exempt, csrf_protect

from django import views
from django.utils.decorators import method_decorator


@method_decorator(csrf_protect, name='post')  # 方式2:单独生效
class MyView(views.View):
    @method_decorator(csrf_protect)  # 方式3:对类中所有方法都生效
    def dispatch(self, request, *args, **kwargs):
        return super().dispatch(request, *args, **kwargs)

    @method_decorator(csrf_protect)  # 方式1:单独生效
    def post(self, request):
        return HttpResponse('from cbv post view')


# @csrf_exempt  # 取消校验 全局校验,我不想校验
# @csrf_protect  # 添加校验 全局不校验,我想校验
def tran_func(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        target_name = request.POST.get('target_name')
        money = request.POST.get('money')
        print(f'{username}给{target_name}转了{money}')
    return render(request, 'tranPage.html')
'''

auth认证模块

前戏:Django自带一个admin路由 但是需要我们提供管理员账号和密码
如果想要使用admin后台管理 需要先创建表 然后创建管理员账号
直接执行数据库迁移命令即可产生默认的auth_user表 该表就是admin后台管理默认的认证表
1.创建超级管理员
	python38 manage.py createsuperuser
    
基于auth_user表编写用户相关的各项功能
	登录,校验用户是否登录,修改密码,注销登录等

标签:protect,request,校验,auth,认证,csrf,method
From: https://www.cnblogs.com/zpf1107/p/17009141.html

相关文章

  • django csrf跨站,CBV添加装饰器,auth认证模块
    djangocsrf跨站,CBV添加装饰器,auth认证模块内容概要csrf跨站请求伪造csrf相关校验策略CBV添加装饰器的多种方式auth认证模块BBS项目需求分析内容详情csrf跨站请求......
  • csrf校验/CBV类添加装饰器
    csrf跨站请求伪造网站在提交表单时一般是通过post请求朝一个网站提交信息,然后这个网址通过request.POST的方式拿到数据。投机分子仿造了一个前端一摸一样的钓鱼网站,并且......
  • Spring-Security-OAuth2调用微信API
     importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation......
  • spring security oauth2
     ​​https://connect.qq.com/manage.html#/​​​​http://wiki.connect.qq.com/%E7%BD%91%E7%AB%99%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B​​​​ h......
  • Securing Spring Cloud Microservices With OAuth2
    FromZerotoOAuth2inSpringcloudTodayIampresentinghoursofresearchabouta(apparently)simplequestion:“HowcanImaintainsecurityinmymicroservic......
  • IdentityServer4 - V4 概念理解及认证授权过程
    概念理解 Scope范围,它的定义比较宽泛,可大可小。大到可把多个包含相同Scope的站点或服务形成一个虚拟的组,也可以是站点或服务的子级;小到身份所需要包含的信息,以精确出哪......
  • django 12 csrf跨站请求伪造
    今日内容详细目录今日内容详细csrf跨站请求伪造csrf校验策略csrf相关装饰器auth认证模块auth认证相关模块及操作扩展auth_user表csrf跨站请求伪造钓鱼网站:模仿一个正规......
  • 欧标插头CE认证EN50075测试项目
    欧标插头在德国、奥地利、荷兰、瑞典、挪威、芬兰、俄罗斯等大部分欧洲国家使用,由于这个标准(EN50075)在整个欧洲普遍使用,我们把它称为是“欧洲大陆”的标准。​欧标插头E......
  • 台灯出口日本PSE认证怎么办理
    PSE标志认证 PSE认证是日本强制性安全认证,用以证明电机电子产品已通过日本电气和原料安全法(DENANLaw)或国际IEC标准的安全标准测试。该法案的目的是防止由电器和材料引......
  • 儿童玩具办理UKCA认证测试
    2022年底前投放到大不列颠市场的商品UKCA或者CE 从2023年1月1日起投放到大不列颠市场的商品符合条件的北爱尔兰商品在不受限制的情况下进入大不列颠市场CE或者“CE和......