From 5f2e01de74b4a04bb2d4dc75e2f406aee82e38ea Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Thu, 13 Feb 2025 10:36:36 -0500 Subject: [PATCH] Sanitize HTML output and increase size of Body textarea input fields (CFM-62) (#293) * Sanitize HTML output and increase size of Body textarea input fields (CFM-62) * Ensure Mostly Static Page body is wrapped with a default div element (CFM-62) --- app/src/Controller/PagesController.php | 14 ++++++++++- app/src/Lib/Traits/ValidationTrait.php | 9 +++---- app/templates/MessageTemplates/fields.inc | 28 +++++++++++++-------- app/templates/MostlyStaticPages/display.php | 5 +++- app/templates/MostlyStaticPages/fields.inc | 19 ++++++++++++-- app/webroot/css/co-base.css | 6 +++++ 6 files changed, 61 insertions(+), 20 deletions(-) diff --git a/app/src/Controller/PagesController.php b/app/src/Controller/PagesController.php index 669a4100d..240421c8f 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