diff --git a/backend/src/controllers/contract.controller.ts b/backend/src/controllers/contract.controller.ts index ea2a0151..4949a2bb 100644 --- a/backend/src/controllers/contract.controller.ts +++ b/backend/src/controllers/contract.controller.ts @@ -6,10 +6,33 @@ import * as contractHistoryService from '../services/contractHistory.service.js' import * as authorizationService from '../services/authorization.service.js'; import { ApiResponse, AuthRequest } from '../types/index.js'; import { logChange } from '../services/audit.service.js'; -import { sanitizeContract, sanitizeContractStrict, sanitizeContracts, sanitizeContractsStrict } from '../utils/sanitize.js'; +import { sanitizeContract, sanitizeContractStrict, sanitizeContracts, sanitizeContractsStrict, stripHtml } from '../utils/sanitize.js'; import { canAccessContract } from '../utils/accessControl.js'; import { maybeActivateOnDeliveryConfirmation } from '../services/contractStatusScheduler.service.js'; +/** + * Walk-and-clean: strippt HTML/Script-/URI-Schemata in allen String-Werten + * eines Body-Objekts (rekursiv über energyDetails, internetDetails etc.). + * Pentest 2026-05-24 (MEDIUM, 31.1): providerName, tariffName und die + * price*-Felder nahmen rohe HTML-Payloads an (`