Critical (all fixed): - bcrypt statt SHA-256 für Passwörter - API-Keys gehasht in DB, Plaintext nur einmalig zurückgegeben - DB-Session-Leak behoben (SessionLocal + try/finally, Depends(get_db)) - Admin-Check via is_admin-Spalte statt Hardcoded-Username - CORS: konfigurierbare Origins via ALLOWED_ORIGINS, kein Wildcard mit Credentials High (all fixed): - TOCTOU-Race: check_and_increment_quota mit SELECT FOR UPDATE atomar - Getrennte Tages-/Monatszähler in Usage + automatische Reset-Logik - Token-Zählung mit tiktoken (cl100k_base) statt .split() Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
15 lines
273 B
Plaintext
15 lines
273 B
Plaintext
fastapi==0.115.6
|
|
uvicorn[standard]==0.34.0
|
|
httpx==0.28.1
|
|
sqlalchemy==2.0.36
|
|
alembic==1.14.0
|
|
pydantic==2.10.3
|
|
python-multipart==0.0.20
|
|
python-jose[cryptography]==3.3.0
|
|
bcrypt==5.0.0
|
|
tiktoken==0.9.0
|
|
python-dotenv==1.0.1
|
|
pytest==8.3.4
|
|
pytest-asyncio==0.25.1
|
|
pytest-cov==6.0.0
|