diff --git a/backend/prisma/cleanup-xss-and-mass-assignment.ts b/backend/prisma/cleanup-xss-and-mass-assignment.ts index 4d72f997..2b5366c9 100644 --- a/backend/prisma/cleanup-xss-and-mass-assignment.ts +++ b/backend/prisma/cleanup-xss-and-mass-assignment.ts @@ -63,16 +63,45 @@ async function cleanupXss() { console.log(` → User bereinigt: ${userTouched}`); } +// HTML in Plain-Text-Settings strippen: WYSIWYG-Editoren liefern +// absichtlich HTML, alles andere (companyName, defaultEmailDomain, ...) +// muss reiner Text bleiben. Pentest 2026-05-19, MEDIUM. +const HTML_ALLOWED_SETTING_KEYS = new Set([ + 'authorizationTemplateHtml', + 'imprintHtml', + 'privacyPolicyHtml', + 'websitePrivacyPolicyHtml', +]); + +function stripHtmlString(s: string): string { + return s + .replace(/` via PUT → DB-Wert: `"OpenCRM"`. + `imprintHtml` mit `
` → unverändert. + - [x] **🐛 Rollen-Perms-Sync beim Container-Start (Follow-up DSGVO-Fix)** - Bestehende Installationen liefen weiter mit veraltetem Permission-Set für die DSGVO-Rolle (audit:read u.a. fehlten),