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

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



