fix: Security hardening, wizard bug fix, and UI redesign
ci/woodpecker/push/woodpecker Pipeline was successful

- Fix QuickStartWizard error matching (services wrap errors in new Error(),
  losing err.response; now checks err.message as fallback)
- Add shellEscape() to all remaining unescaped CLI commands (removeUser,
  enableUser, disableUser, deletePolicy, attachPolicy, createPolicy)
- Fix inconsistent cookie secure flag in logout endpoint
- Add HTML escaping in email report templates to prevent XSS
- Add IP validation on token refresh to enforce IP binding
- Harden email recipient validation against header injection
- Add CSV injection prevention in report export
- Add JWT_SECRET minimum length validation (32 chars) in production
- Update bcrypt 5.x→6.x, nodemailer 6.x→8.x, fix all backend npm vulns
- Redesign UI: new theme (IBM Plex Sans, MinIO-inspired palette), improved
  login page, dashboard with skeleton loaders, refined sidebar navigation
- Add missing i18n keys for login and user menu (DE + EN)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 10:24:57 +01:00
parent 8a2a9d8887
commit a96f12dcb6
18 changed files with 942 additions and 985 deletions
+10 -6
View File
@@ -14,11 +14,15 @@
"generate-password": "node generate-password.js",
"postinstall": "npm rebuild bcrypt --build-from-source"
},
"keywords": ["minio", "api", "backend"],
"keywords": [
"minio",
"api",
"backend"
],
"author": "",
"license": "MIT",
"dependencies": {
"bcrypt": "^5.1.1",
"bcrypt": "^6.0.0",
"compression": "^1.7.4",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
@@ -30,11 +34,11 @@
"ip-range-check": "^0.2.0",
"jsonwebtoken": "^9.0.2",
"morgan": "^1.10.0",
"multer": "^1.4.5-lts.1",
"node-cron": "^3.0.3",
"nodemailer": "^6.9.8",
"nodemailer": "^8.0.2",
"winston": "^3.11.0",
"winston-daily-rotate-file": "^4.7.1",
"multer": "^1.4.5-lts.1"
"winston-daily-rotate-file": "^4.7.1"
},
"devDependencies": {
"eslint": "^8.56.0",
@@ -45,4 +49,4 @@
"engines": {
"node": ">=18.0.0"
}
}
}