Pentest 47.1/47.2/47.3: Re-Auth bei sensiblen Operationen + Provider.name-Strip
47.3 MEDIUM (Admin-Passwort-Reset ohne Re-Auth): POST /api/users/:id/password verlangt jetzt currentPassword im Body. Backend prüft per bcrypt.compare gegen den Hash des aufrufenden Admins. Frontend (UserList-Modal): zusätzliches Passwort-Feld wird eingeblendet, sobald für einen User ein neues Passwort gesetzt werden soll. Gestohlener JWT allein reicht damit nicht mehr. 47.1 MEDIUM (Open Redirect / Phishing via provider.portalUrl): Selbes Re-Auth-Pattern für Provider-Endpoints. Nur wenn die Portal-URL-Domain WIRKLICH gewechselt wird (Host-Vergleich) oder beim Create mit URL, ist currentPassword Pflicht. Reine Namens-/Tarif-Edits bleiben friction-frei. Audit-Log bekommt die Portal-URL beim Ändern explizit mitgeloggt (Forensik bei Vorfällen). Frontend ProviderModal zeigt amber- farbenen Bestätigungs-Banner mit Passwort-Eingabe sobald der Host wechselt. 47.2 INFO (provider.name ohne Backend-Sanitization): Neuer Helper stripProviderStrings in provider.service, wendet stripHtml auf name + usernameFieldName + passwordFieldName an – Defense-in-Depth gegen neue Renderpfade (PDF, Mail-Templates). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1344,8 +1344,9 @@ export const userApi = {
|
||||
},
|
||||
// Passwort eines Users zurücksetzen (Admin-Funktion). Separat vom generischen
|
||||
// Update, damit der Vorgang einen eigenen Audit-Eintrag bekommt.
|
||||
setPassword: async (id: number, password: string) => {
|
||||
const res = await api.post<ApiResponse<void>>(`/users/${id}/password`, { password });
|
||||
// Pentest 47.3: braucht currentPassword (eigenes Admin-Passwort) als Re-Auth.
|
||||
setPassword: async (id: number, password: string, currentPassword: string) => {
|
||||
const res = await api.post<ApiResponse<void>>(`/users/${id}/password`, { password, currentPassword });
|
||||
return res.data;
|
||||
},
|
||||
delete: async (id: number) => {
|
||||
|
||||
Reference in New Issue
Block a user