Back to questions
Junior — Middle
48
Какими способами осуществляется обеспечение безопасности в FastAPI?
Companies where asked
LuckyGroup
Answer from AI
sobes.tech AI
В FastAPI безопасность обеспечивается несколькими способами:
- Аутентификация и авторизация: Использование OAuth2 с JWT-токенами или базовой аутентификации для проверки пользователей.
- Зависимости безопасности: FastAPI позволяет внедрять зависимости, которые проверяют права доступа перед выполнением эндпоинтов.
- Валидация данных: Благодаря Pydantic данные, поступающие в API, валидируются, что снижает риск уязвимостей.
- HTTPS: Рекомендуется запускать приложение за прокси-сервером с поддержкой HTTPS для защиты данных при передаче.
- CORS: Настройка Cross-Origin Resource Sharing для ограничения доступа к API с определённых доменов.
Пример использования OAuth2 с JWT в FastAPI:
from fastapi import FastAPI, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
def fake_decode_token(token):
# Здесь должна быть логика декодирования и проверки токена
if token == "fake-super-secret-token":
return {"sub": "user"}
raise HTTPException(status_code=401, detail="Invalid token")
async def get_current_user(token: str = Depends(oauth2_scheme)):
user = fake_decode_token(token)
return user
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user