- 1 信息安全简介
- 1.1 信息安全发展史
- 1.2 信息安全等级保护
- 2 安全 OS
- 2.1 UNIX 系统安全
- 2.1.1 设置健壮的密码
- 2.1.2 删除所有的特殊账户
- 2.1.3 关闭不需要的服务
- 2.1.4 远程登陆管理
- 2.1.5 限制 IP 访问
- 2.1.6 日志监控
- 2.2 Linux 系统安全
- Linux 安全设置手册
- Linux 服务器安全加固
- Linux 防火墙
- SELinux
- SSH 免密登陆
- 2.3 Windows 系统安全
- Windows 常见安全隐患
- 防火墙-Microsoft Defender
- 本章参考
- 3 访问控制技术
- 3.1 基于角色的访问控制 RBAC
- 基于 RBAC 的延展-用户组(租户)
- 示例 1:Python Django 后台管理
- 示例 2:Python flask_appbuilder 后台管理
- 3.2 认证
- 3.2.1 认证机制
- 3.2.2 OpenID
- 3.2.3 LDAP
- 3.2.4 Kerberos
- 3.2.5 数字签名
- 3.2.6 基于证书的认证
- 3.3 授权
- 3.3.1 OAuth
- 3.4 HTTPS
- 3.4.1 HTTPS 原理
- 3.4.2 证书
- 3.4.3 自签名证书
- 本节参考
- 案例
- 天网 MAZE 的信用卡机制
- S3 认证机制
- 云盘认证机制
- 双因子认证
- 扫码登陆
- 单点登陆 SSO
- 本章参考
- 4 安全编程
- 4.1 内存管理
- 4.2 安全编程实践
- 4.2.1 使用断言进行防止错误
- 4.3 语言相关的安全编码
- 4.3.1 net 中使用安全函数
- 4.3.2 PHP 代码执行漏洞
- 4.4 源码保护
- Java 源码保护
- python 源码保护
- 本章参考
- 5 安全算法
- 6 安全架构
- 云安全
- 云安全事件案例
- 云计算带来的安全挑战
- 应用:安全云/云查杀
- 业界案例
- 华为的安全白皮书
- 参考资料
- 附录
- 安全相关法律法规
- 个人信息安全
- 云安全标准与组织
- 国际
- 国内
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
示例 1:Python Django 后台管理
数据架构:用户表、角色表、权限表、资源列表
- 用户表 auth_user:账号、姓名、邮箱、添加时间、最后登录时间、账号是否禁止登录
- 角色表 auth_group:商品管理员、订单管理员、超级管理员
- 权限表 auth_permission:对某一个路由的增删改查权限。路由是指向资源 。
- 资源列表(路径正则) :资源名称(项目模块名称),资源路径(后台路由)
- 资源分类 django_content_type:商品模块、订单模块、营销模块、权限模块、内容模块、其他模块
备注:面向资源编程,一个资源就是一个路由 URL。资源根据实际权限控制需要,可以是菜单、视图、模块、操作方法(如增删改查、上传下载)等。
后端如何判断用户权限?
- 用户发送 Method + URL
- 后端首先查询是哪一个用户,然后查询当前用户的角色
- 判断这个角色是否可以访问此 URL 对应的方法
- 如果用户有权限访问此 URL 就返回数据,不能访问就返回 401 状态码。
Django 自带权限管理是基于角色的权限管理模型。用户 -> 组 -> 权限
django 自带表分为二类,
- 一类是 auth 开头的,需要激活了认证应用 auth 才生效,这些表是权限管理表,可管理用户、用户组、权限,内容对象。
- 另一类是 django 开头的表,功能是 app 管理、会话管理、管理日志、数据迁移记录。
表格 django 自带表
表名 | 表字段 | 功能说明 | 备注 |
---|---|---|---|
auth_group | id, name | 认证组名称 | 创建时空组 |
auth_group_permission | id, group_id, permission_id | 组和权限关联 | |
auth_permission | id, name, content_type_id, code_name | 权限项名称 | 预创建 |
auth_user | id, password, last_login, is_superuser, username, first_name, last_name,email, is_staff, is_active, date_joined | 认证用户 | |
auth_user_groups | id, user_id, group_id | 用户和组关联 | |
django_admin_log | active_time, object_id, user_id,,, | 管理日志 | |
django_content_type | id, app_label, model | 内容对象 | app > model |
django_migrations | id, app, name, applied | ORM 记录 | |
django_session | session_key, session_date, expire_date | 会话管理 |
激活认证应用-auth
# /django/
from django.contrib.auth.models import User, Group
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
创建超级用户 admin(普通用户创建可以通过接口或页面上操作 )
$ python manage.py createsuperuser --email admin@example.com --username admin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论