- security.py/dependencies.py/auth.py: jose -> pyjwt (unmaintained, Algorithm-Confusion-CVE). API-kompatibel (jwt.encode/decode gleich). - requirements.txt: alle Versionen gepinnt (waren >=, jetzt == anhand aktueller 137-Installation) fuer reproduzierbare Deploys. - nginx.conf: /docs + /openapi.json nur noch aus LAN erreichbar (waren oeffentlich, API-Struktur-Leak). fail2ban auf 137+164 installiert (sshd + nginx-badbots + timemaster-auth Jails), Configs nicht im Repo (Server-only, /etc/fail2ban/). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LTxkZEUdfgMxZvHPiZJ8bV
30 lines
533 B
Plaintext
30 lines
533 B
Plaintext
fastapi==0.135.2
|
|
uvicorn[standard]==0.42.0
|
|
sqlalchemy[asyncio]==2.0.48
|
|
asyncpg==0.31.0
|
|
alembic==1.18.4
|
|
pydantic[email]==2.12.5
|
|
pydantic-settings==2.13.1
|
|
pyjwt[crypto]==2.10.1
|
|
bcrypt==5.0.0
|
|
openpyxl==3.1.5
|
|
ldap3==2.9.1
|
|
cryptography==46.0.6
|
|
python-multipart==0.0.22
|
|
slowapi==0.1.9
|
|
limits==5.8.0
|
|
redis==7.4.0
|
|
resend==2.26.0
|
|
python-dateutil==2.9.0.post0
|
|
pyotp==2.9.0
|
|
httpx==0.28.1
|
|
icalendar==7.0.3
|
|
pytest==9.0.2
|
|
pytest-asyncio==1.3.0
|
|
pytest-httpx==0.36.0
|
|
aiosqlite==0.22.1
|
|
weasyprint==68.1
|
|
typer==0.25.1
|
|
rich==15.0.0
|
|
apscheduler==3.11.2
|