[Security/Critical] Fast alle Controller haben kein [Authorize] #34
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#34
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
Nur
SpaceControllertraegt[Authorize]. Ohne Attribut sind ungeschuetzt:RecipeControllerRecipeImagesControllerMealPlansControllerMealPlanEntriesControllerSpaceMembersControllerDie Endpunkte rufen
User.GetUserId()auf. Ohne Token wirftUserClaimsExtensions.GetUserIdeineException, der Aufrufer bekommt 500 statt 401.Auswirkung
Fix
Globale Fallback-Policy setzen und die oeffentlichen Endpunkte explizit freigeben:
AuthController.Login/RegisterundAppInfoControllerbekommen[AllowAnonymous].Erledigt.
Statt einzelner Attribute gibt es jetzt eine globale Fallback-Policy in
Program.cs:Jeder Endpunkt ohne eigenes Attribut verlangt damit ein gültiges Token. Bewusst offen sind nur
POST /api/auth/login,POST /api/auth/register, derAppInfoControllerund/health.GetUserId()wirft außerdem keine nackteExceptionmehr, sondern eine typisierte, die auf 401 abgebildet wird.Geprüft: Aufrufe ohne Token auf
/api/spacesund/api/spaces/{id}/recipesliefern jetzt 401 statt 500.Branch
backend/issue-fixes, Commits2a1cc95.