API的安全防护
在 FastAPI系列12:使用JWT 登录认证和RBAC 权限控制 一节中,我们介绍了在FastAPI中实现身份验证和授权这两个API 安全防护的两个基本要素。本节我们继续讨论HTTPS 强制、 CSRF防护、CORS跨域资源共享、 SQL注入防护等内容。
1、HTTPS 强制
什么是HTTPS强制
HTTPS协议在 HTTP 的基础上添加了 SSL/TLS 加密层,在HTTPS协议下所有数据传输都经过对称加密(如 AES),即使被窃听也无法读取内容。而HTTPS 强制是指确保用户始终通过HTTPS安全连接访问网站,防止:
- 数据在传输过程中被窃听或篡改(中间人攻击);
- 用户意外使用不安全的 http:// 访问。
如何在FastAPI中实现HTTPS强制
一般情况下,我们可以通过通过反向代理(如 Nginx)实现强制跳转,如:
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
在FastAPI中,也可以使用中间件自动重定向到 HTTPS
from fastapi import FastAPI, Request
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.middleware("http")
async def redirect_to_https(request: Request, call_next):
if request.url.scheme == "http":
url = request.url.replace(scheme="https")
return RedirectResponse(url


376

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



