面向系统管理员: 平台内置的安全机制与合规保障,帮助您满足等保 2.0 三级、数据安全法等监管要求。
平台对敏感数据采用 EncryptedCharField /
EncryptedTextField 自动加密:
| 字段 | 加密方式 | 涉及模块 |
|---|---|---|
| 身份证号 | AES + Fernet | 人员管理(sa_personnel) |
| 手机号 | AES + Fernet | 人员管理(sa_personnel) |
| 家庭住址 | AES + Fernet | 人员管理(sa_personnel) |
| 供应商联系方式 | AES + Fernet | 物资管理(sa_material) |
| 电子签名数据 | AES + Fernet | 签名模块(sa_signature) |
| CA 私钥 | AES + Fernet | 签名模块(sa_signature) |
加密密钥从 DJANGO_SECRET_KEY
派生,或通过 ENCRYPTION_KEY
环境变量独立设置。
0o640,防止未授权访问截图:双因素认证设置界面 
平台采用精细化的 基于角色的访问控制(RBAC),权限颗粒度细至单操作:
| 层级 | 说明 | 数量 |
|---|---|---|
| 角色模板 | 预定义的权限集合 | 8 种 |
| 授权码 | 最小权限单元 | 39 项 |
| 范围限定 | 按项目/公司级限定 | 动态 |
8 种角色权限对比:
| 角色 | 权限特征 |
|---|---|
| 超级管理员 | 39 项全部权限 |
| 法人 | 公司级查看 + 授权管理 |
| 安全总监 | 公司/项目级安全监督 |
| 项目安全员 | 项目级安全操作 |
| 项目经理 | 项目全流程管理 |
| 施工队长 | 班组级协作 |
| 公司职员 | 个人事务 |
| 班组成员 | 基础操作 |
grant_role_permissions()
自动为用户分配角色权限所有关键操作由 AuditLog
模型自动记录,支持:
审计日志通过 AuditModel
基类自动集成,新增模型只需继承即可获得审计能力。审计日志不可删除(仅软删除),满足等保
4.1.6 审计要求。
截图:审计日志列表 
提示: 管理员可在「系统管理 → 审计日志」页面查看和搜索所有日志记录。
| 等保要求 | 对应实现 |
|---|---|
| 4.1.3 访问控制 | RBAC 权限模型 + 8 角色 + 39 授权码 |
| 4.1.6 安全审计 | AuditLog 全量审计 + JSON 结构化日志 |
| 4.3.4 登录安全 | django-axes(5 次锁定 15 分钟)+ 密码 12 位 |
| 4.3.7 剩余信息保护 | django-safedelete 软删除 + 安全擦除 |
| 5.1.3 数据加密 | 字段级加密(Fernet)+ HTTPS 传输 |
| 5.5.1 开发与生产隔离 | settings_production.py 独立配置 |
| 会话管理 | JWT 30 分钟过期 + HTTPOnly Cookie + SameSite=Lax |
依据《个人信息保护法》第 29 条,敏感个人信息需取得个人单独同意:
*_consent
布尔字段*_consent_date、*_consent_text)| 安全策略 | 配置值 |
|---|---|
| Token 类型 | JWT(Bearer)+ TokenAuthentication |
| Access Token 有效期 | 30 分钟 |
| Refresh Token 有效期 | 1 天(支持轮换) |
| Session Cookie | HTTPOnly + Secure + SameSite=Lax |
| 浏览器关闭会话 | 生产环境可配置为保持或清除 |
| XSS 防护 | CSP 策略 + HttpOnly Cookie |
| CSRF 防护 | CSRF Cookie Secure + Referer 校验 |
| 登录失败锁定 | 5 次失败 → 锁定 15 分钟 |
作为系统管理员,建议定期执行以下操作:
DJANGO_SECRET_KEY,执行字段重加密