[Security/High] Zugangsdaten und JWT-Secret liegen im Klartext in appsettings*.json #35
Labels
No labels
bug
critical
database
duplicate
enhancement
help wanted
invalid
performance
question
refactoring
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Aceless/RecipePlanner#35
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
appsettings.json,appsettings.Development.jsonundappsettings.Production.jsonsind eingecheckt und enthalten je Datenbank-Passwort und JWT-Secret.Zusaetzlich ist in allen drei Umgebungen dasselbe Secret hinterlegt. Ein Token aus Development ist damit auch in Produktion gueltig.
Fix
dotnet user-secrets, im Container Umgebungsvariablen (ConnectionStrings__DefaultConnection,JwtSettings__Secret).jwt!.Issuerbei fehlender Konfiguration nur eine NullReferenceException werfen.Code-Seite erledigt, Rotation offen.
Geändert
appsettings.Development.jsonundappsettings.Production.jsonsind nicht mehr getrackt und stehen in.gitignoresowie in.dockerignore. Damit landen sie auch nicht mehr im Image.appsettings.jsonenthält nur noch die Struktur mit leeren Werten.appsettings.Development.json.exampleals Vorlage.Program.csprüft beim Start Connection String, Secret (mindestens 32 Byte), Issuer, Audience und Ablaufzeit und bricht mit einer verständlichen Meldung ab, statt später eine NullReferenceException zu werfen.backend/README.mdbeschreibt die nötigen Umgebungsvariablen und enthält ein Compose-Beispiel.Wichtig für das nächste Deployment: Der Container braucht jetzt
ConnectionStrings__DefaultConnectionundJwtSettings__Secretaus der Umgebung.Offen
Branch
backend/issue-fixes, Commits2a1cc95.