- 标签
- CORS
中间件、CORS 和后台任务分别解决什么
FastAPI 三大中间件需分层使用:自定义中间件处理全局请求流(如记请求ID、计时、安全头),但不支持Depends注入的上下文;CORS中间件仅限浏览器跨源预检,需明确指定Origin列表,禁止用*搭配Cookie;后台任务(BackgroundTasks)处理响应后可丢失的轻量工作(如邮件、日志),需独立建立数据库会话。常见误区包括用中间件替代登录鉴权、混淆CORS策略导致浏览器拦截、后台任务依赖已关闭的DB会话。三层职责清晰划分可避免预检失败和资源泄漏,提升系统扩展性。正确分层使鉴权由Depends控制、CORS定向管理浏览器、后台任务异步处理非核心任务,兼顾安全性和开发效率。
- 2026/09/12 20:03
- 7
- 0
- 0
- 24.7℃
CORS 到底在限制什么:跨源请求、预检与凭证
CORS由服务器通过响应头控制浏览器跨源请求安全性。浏览器根据_accessControl-Allow-Origin头决定是否返回响应数据,即使服务器已处理请求。简单请求(GET/POST/DELETE)可直接发送无需预检,但安全需单独验证。带Cookie请求必须严格配置域匹配、允许凭据及访问控制预检,否则会泄露用户凭证。CORS无法防御CSRF攻击——HTML表单可通过标签内在机制绕过CORS限制直接提交请求,需结合CSRF token等独立机制防护。配置错误可能导致任意源访问权限,常见问题包括反射任意origin、错误使用PixelFormat、未限制必要请求头等。实际应用中应最小化开放权限,仅按业务需求配置允许方法、头信息及URL白名单,同时结合身份认证、输入过滤等机制共同构建安全边界。
- 2026/07/13 11:13
- 5
- 0
- 0
- 24.5℃