Django csrf跨站请求 csrf的处理 Auth模块

内容概要

  • csrf跨站请求
  • csrf的处理
  • Auth模块
  • 扩展auth_user表字段

内容详细

csrf跨站请求

        # 背景:
            钓鱼网站
             '''
                英语4级报名网站为例
                    你要在这个网站要付费,你去的这个网站是一个冒牌的网站,他就去冒牌网站里面付费了,前付到了冒牌网站,没有报名成功。

             '''
          他会出现在form表单中,action参数:朝后端发送的地址

        # 怎么解决这个问题?

        # csrf是针对与post请求的才会做验证

        '''token相关的,一般都是一个串,秘钥, 私钥,公钥'''

        # 两种解决方式

         {#data:{'a':1, 'csrfmiddlewaretoken': $('[name="csrfmiddlewaretoken"]').val()},#}
        data:{'a':1, 'csrfmiddlewaretoken': '{{ csrf_token }}'},

csrf相关装饰器

        '''
            如果使用中间件限制的话,他就会限制全局的,要么全部限制,要么全部不限制

            只有index函数需要验证,其他的不需要验证
            我只想让home函数不验证,其他的都需要验证
        '''
        提供了2个装饰器
        csrf_protect: 需要验证
        csrf_exempt:不需要验证

        '''
            按照FBV和CBV的使用即可
        '''

        from django.views.decorators.csrf import csrf_exempt,csrf_protect
        '''
            针对CBV:
                csrf_protect的三种方式都是可以的
                csrf_exempt前两种方式都不行,只有第三种方式可以的
        '''

Auth模块

        # 迁移数据库会有一个表生成,auth_user
        # django项目创建完后之后,会有一个默认的路由,admin/
        # admin/是django默认提供的后台管理界面

        访问admin/登录参照的数据就是从auth_user表中来,前提是必须是超级管理员

        # 如何创建超级管理员?

        python3 manage.py createsuperuser

扩展auth_user表字段

# 前提:一般情况,你执行了数据库迁移命令,就不要在扩展了
要想扩展字段,最后在迁移数据库命令之前扩展。

如果已经迁移过了,也是可以扩展的,只不过有点麻烦,还有可能容易出错

# 扩展auth_user表,要继承Abstractuser类

from django.contrib.auth.models import AbstractUser
# Create your models here.

# 如果扩展字段的话,就不要在继承models.Model
class UserInfo(AbstractUser):
    '''
        1. 原来已经有的字段不要动
        2. 你只写你自己需要扩展的字段
        3. 扩展之后,原来的auth_user表已经不存在了
        4. 从新生成一个新表
    '''
    phone = models.CharField(max_length=32)
    # 可以上传任意的文件
    avatar = models.FileField(upload_to='static/img/', default='static/img/default.png')
    # 只能上传图片
    # avatar = models.ImageField
    create_time = models.DateTimeField(auto_now_add=True)
    
'''在配置文件中增加一下内容'''
# AUTH_USER_MODEL = '应用名.类名'
AUTH_USER_MODEL = 'app01.UserInfo'
posted @ 2022-03-28 14:39  风花雪月*  阅读(25)  评论(0编辑  收藏  举报