SuperAPI AI 工具集

security-environment-standards

安全与审计

查看项目

更新于 10-15 21:41

技能介绍

该技能是一套面向 Web 应用的安全与环境配置标准,主要用于规范认证、会话、上传、正则与密钥等安全环节。

认证方面采用无密码魔法链接:app.py 中维护 magic_links 与 active_sessions 字典,每个用户仅保留一个会话;令牌通过邮件发送,MAGIC_LINK_EXPIRY_MINUTES 默认 15 分钟。send_magic_link_email() 经 SMTP 发送,开发环境未配置 SMTP 时回退到标准输出。@login_required 装饰器检查 session['authenticated'] 与 active_sessions。

环境变量通过 .env 管理(不得提交,已列入 .gitignore),包括 FLASK_SECRET_KEY(生产必填,建议 64 位十六进制字符)、FLASK_ENV=production、COSMOS_DB_CONNECTION_STRING、SMTP 相关配置、可选 GOOGLE_VISION_API_KEY、MAX_CONTENT_LENGTH=16777216、UPLOAD_FOLDER=uploads。

会话安全配置为 SESSION_COOKIE_SECURE 仅在 production 时开启、SESSION_COOKIE_HTTPONLY=True、SESSION_COOKIE_SAMESITE='Lax'、PERMANENT_SESSION_LIFETIME 为 7 天。上传安全通过 ALLOWED_EXTENSIONS 白名单(png、jpg、jpeg、gif、pdf、docx、txt、csv、epub)与 allowed_file() 校验,并使用 werkzeug 的 secure_filename。MongoDB $regex 查询须用 re.escape 转义用户输入以防 ReDoS。密钥不得硬编码,生产环境使用 Azure Key Vault,FLASK_SECRET_KEY 未显式设置会抛出 ValueError,users.json 在生产部署中被 gitignore。生产清单涉及开启 production、设置密钥、配置 SMTP、从 Key Vault 取连接串、部署用户列表、在负载均衡或 Azure Container App ingress 强制 HTTPS。相关源码包括 app.py、config/users.json 与 deploy-chuuk.sh。具体适用范围与更多实现细节暂未提供。