FastAPI 中的认证、安全与 WebSocket 双向通信
1. FastAPI 中的认证与安全
在开发 FastAPI 应用时,认证和安全是至关重要的方面。我们先来了解跨源资源共享(CORS)和跨站请求伪造(CSRF)攻击的相关内容。
1.1 CORS 与简单请求
浏览器规则下,有两种“简单请求”不需要预检请求。当启用 JSON 内容类型时,在 GET 和 POST 请求之前会执行 OPTIONS 请求,即预检请求。通过合理配置 CORS,前端应用和不同源的后端之间可以进行跨源 HTTP 请求。不过,这并不能完全提升应用的安全性,只是让特定场景能够正常工作,同时保证对其他网络的安全性。
虽然这些策略能作为抵御 CSRF 攻击的第一层防线,但并不能完全消除风险。“简单请求”仍然存在问题,例如 POST 请求被允许执行,即便响应无法被读取,但实际上服务器已经执行了该请求。
1.2 双提交 cookie 模式防止 CSRF 攻击
当依赖 cookie 存储用户凭证时,由于浏览器会自动将 cookie 发送到服务器,我们容易受到 CSRF 攻击。特别是对于浏览器认为的“简单请求”,在请求执行前不会强制执行 CORS 策略。此外,传统 HTML 表单提交或图像标签的 src 属性也可能成为攻击向量。
为了降低这种风险,我们需要额外的安全层。这仅在计划从浏览器应用使用 API 并使用 cookie 进行认证时才必要。
以下是具体的操作步骤:
1. 安装 starlette-csrf 库 :
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



