17、FastAPI 中的认证、安全与 WebSocket 双向通信

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 库


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值