首页 > 其他分享 >9.权限

9.权限

时间:2024-08-14 21:05:30浏览次数:9  
标签:权限 auth django hashers contrib password

【一】权限

1)权限控制模型

1. ACL(Access Control List,访问控制列表)

  • 将用户或组等使用者直接与对象的权限对接。

2. RBAC(Role-Based Access Control,基于角色的访问控制)

  • 将用户与角色对接,然后角色与对象的权限对接。

3. ABAC(Attribute-Based Access Control,基于属性的访问控制)

  • ABAC(Attribute-Based Access Control,基于属性的访问控制),又称为PBAC(Policy-Based Access Control,基于策略的访问控制),CBAC(Claims-Based Access Control,基于声明的访问控制)。
  • 传统的ACL、RBAC的架构是{subject,action,object},而ABAC的架构是{subject,action,object,contextual}且为他们添加了parameter(参数)。
  • subject属性:
    • 比如用户的年龄、部门、角色、威望、积分等主题属性。
  • action属性:
    • 比如查看、读取、编辑、删除等行为属性。
  • object属性:
    • 比如银行账户、文章、评论等对象或资源属性。
  • contextual属性:
    • 比如时段、IP位置、天气等环境属性

2)django自带的admin

  • admin + auth 有rbac的权限

用户表:auth_user

角色表:auth_group

权限表:auth_permission

用户与角色的多对多表:auth_user_groups

角色与权限的多对多表:auth_group_permission

用户与权限的多对多表:auth_user_user_permission

3)user的加密

pbkdf2_sha256$600000$hHslzR8Lw5IObVoFcjTng3$m/M9vnqT4EjNaL3C/LKEwzoEVGQOpRMU7J4G/UVoCTM=
  • 加密方式
    • pbkdf2_sha256
  • 过期时间
    • 600000
    • hHslzR8Lw5IObVoFcjTng3
  • 密文
    • m/M9vnqT4EjNaL3C/LKEwzoEVGQOpRMU7J4G/UVoCTM=
# 加密密码
from django.contrib.auth.hashers import make_password
eg = make_password(明文密码)
# 校验密码
from django.contrib.auth.hashers import check_password
check_password(明文密码,eg)

4)使用

  • 配置

    PASSWORD_HASHERS = (
        'django.contrib.auth.hashers.PBKDF2PasswordHasher',
        'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
        'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
        'django.contrib.auth.hashers.BCryptPasswordHasher',
        'django.contrib.auth.hashers.SHA1PasswordHasher',
        'django.contrib.auth.hashers.MD5PasswordHasher',
        'django.contrib.auth.hashers.CryptPasswordHasher',
    )
    
  • 导入声明,使用

    from django.conf import settings
    settings.configure(DEBUG=True)
    
    from django.contrib.auth.hashers import make_password
    from django.contrib.auth.hashers import check_password
    
    # 加密密码
    eg = make_password('1234')
    print(eg)
    # pbkdf2_sha256$600000$tumQmh9MCqmFlQVkMVkQN8$SCV5Wwv/8WqTGOpcmKQlYFOH+fgvxYoAzptpn6nFHyA=
    
    # 校验密码
    eg2 = check_password('1234', eg)
    print(eg2)
    # True
    

标签:权限,auth,django,hashers,contrib,password
From: https://www.cnblogs.com/Mist-/p/18359781

相关文章

  • mysql: 用户权限的操作
    一,查看mysql内置的权限有哪些?SHOWPRIVILEGES;如图:二,管理给用户的权限1,授予权限:mysql>GRANTSELECT,INSERT,DELETE,UPDATEONnews.*TO'laoliu'@'127.0.0.1';QueryOK,0rowsaffected(0.01sec)2,查询指定用户有哪些权限?mysql>showgrantsfor'laoliu'......
  • 揭开 PostgreSQL 默认权限的神秘面纱
    alterdefaultprivileges命令允许我们设置将应用于将来创建的对象的权限。需要注意的是,这不会影响分配给现有对象的权限;默认权限可以全局设置在当前数据库上,或者指定的schema上。 数据库使用者对默认权限的行为有很多误解,我经常听到一些抱怨,说即使为特定schema分配了默认......
  • mysql: Usage权限
    一,Usage权限的功能1,官方的解释可以看到官方的说明:无权限,只允许连接到数据库2,Usage是连接(登陆)权限,当建立一个用户时,就会自动授予其usage权限(默认授予)。该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。 二,测试:创建用户后......
  • BlackMarket靶机复现【附代码】(权限提升)
    TheBlackmarket/BlackMarket靶机下载地址:https://www.vulnhub.com/entry/blackmarket-1,223/https://www.vulnhub.com/entry/blackmarket-1,223/1.主机发现+端口扫描+目录扫描+敏感信息获取1.1.主机发现nmap-sn192.168.7.0/24|grep-B2'08:00:27:D6:0A:18'1.2.......
  • 微服务安全加固:Spring Cloud的细粒度权限控制策略
    标题:微服务安全加固:SpringCloud的细粒度权限控制策略在微服务架构中,服务的细粒度权限控制是保障系统安全的关键。SpringCloud作为一个微服务架构的解决方案集合,提供了多种工具和策略来实现这一目标。本文将详细介绍如何利用SpringCloud中的各种组件,如SpringCloudSecur......
  • s和t权限详解
     s,表示setUID或setGID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。s权限位是一个敏感的权......
  • MySQL授权用户对存储过程查询和执行权限【转】
    1、授权MySQL存储过程执行权限在项目中往往会用到存储过程来统计一些比较复杂的报表,如果数据库是mysql,则需要在执行存储过程前需要为用户添加权限,才可以,否则会提示:mysqlUserdoesnothaveaccesstometadatarequiredtodeterminestoredprocedureparametertypes错误。......
  • mysql 给了用户所有权限ALL PRIVILEGES,但是该用户没有grant权限
    在MySQL中,给用户ALLPRIVILEGES权限但没有grant权限的情况可能是因为MySQL版本的更新导致了语法的变化。在MySQL8.0及更高版本中,GRANTALLPRIVILEGES的用法已经不再支持,需要使用GRANTALLPRIVILEGESON*.*TO'username'@'host'WITHGRANTOPTION;的格式来授予用户全局权限和......
  • Linux解决频繁的sudo权限认证
    1.在进行一些软件包的安装时,经常性的需要输入密码以进行sudo权限执行。默认的sudo命令可以维持5分钟时间,这个时间是可以设置的。2.使用vi打开/etc/sudoers配置文件,(修改需要有权限,可以看下面第四点)。3.按i进入编辑状态,修改%admin该行代码,修改后按esc退出编辑状态,输入:wq,以保存退......
  • Linux:Linux权限解析
    一、Linux下的用户分类 在Linux下,有两种用户,一种是超级用户,一种是普通用户超级用户:可以再linux系统下做任何事情,不受权限限制(制定规则,但不需要遵守规则)普通用户:在linux下做有限的事情。(必须遵守相应的规则)超级用户的命令提示符是“#”,普通用户的命令提示符是“$”1、......