From 4f7c91bb9f350bc0d7708699a60fb679c90efdbc Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Wed, 12 Feb 2025 11:21:02 -0500 Subject: [PATCH 1/2] Sanitize HTML output and increase size of Body textarea input fields (CFM-62) --- app/src/Controller/PagesController.php | 14 ++++++++++- app/src/Lib/Traits/ValidationTrait.php | 9 +++---- app/templates/MessageTemplates/fields.inc | 28 ++++++++++++++-------- app/templates/MostlyStaticPages/fields.inc | 19 +++++++++++++-- app/webroot/css/co-base.css | 3 +++ 5 files changed, 54 insertions(+), 19 deletions(-) diff --git a/app/src/Controller/PagesController.php b/app/src/Controller/PagesController.php index 669a4100..240421c8 100644 --- a/app/src/Controller/PagesController.php +++ b/app/src/Controller/PagesController.php @@ -23,6 +23,8 @@ use Cake\ORM\TableRegistry; use Cake\View\Exception\MissingTemplateException; use \App\Lib\Enum\SuspendableStatusEnum; +use Symfony\Component\HtmlSanitizer\HtmlSanitizer; +use Symfony\Component\HtmlSanitizer\HtmlSanitizerConfig; /** * Static content controller @@ -130,7 +132,17 @@ public function show(string $coid, string $name) { $this->set('vv_bc_skip', true); // this doesn't do anything? $this->set('vv_title', $msp->title); - $this->set('vv_body', $msp->body); + + // Mostly Static Pages allow HTML input. Pass this through the Symfony HTML Sanitizer to + // disallow dom elements like