1.1 KiB
1.1 KiB
安全规则
数据安全
- SSH 密码必须加密存储(使用 Fernet 加密)
- 敏感信息通过环境变量配置
- 数据库连接使用 SSL
- 定期备份数据(90天历史记录)
密码加密示例:
from cryptography.fernet import Fernet
def encrypt_password(password: str, key: bytes) -> str:
f = Fernet(key)
return f.encrypt(password.encode()).decode()
def decrypt_password(encrypted: str, key: bytes) -> str:
f = Fernet(key)
return f.decrypt(encrypted.encode()).decode()
应用安全
- 所有 API 端点需要认证(除登录接口)
- 实现 CSRF 保护
- 输入验证使用 Pydantic
- SQL 注入防护(使用 ORM)
- XSS 防护(前端转义)
- 实现速率限制
访问控制
- 基于 RBAC 的权限控制
- 数据级权限过滤(按区域/学校)
- 操作审计日志记录
- 设备信息变更需要审核
权限级别:
- 超级管理员:所有权限
- 管理员:管理所有设备和用户
- 区域管理员:管理指定区域的设备
- 学校管理员:管理指定学校的设备
- 普通用户:只读权限