diff --git a/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_field.js b/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_field.js index ff1a9dd9a..fc87487af 100644 --- a/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_field.js +++ b/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_field.js @@ -35,7 +35,8 @@ $(function() me.element.addClass('has-error'); for(var i in oResult.error_messages) { - me.element.find('.help-block').append($('
' + oResult.error_messages[i] + '
')); + // transform error message in pure text to avoid XSS + me.element.find('.help-block').append($('').text(oResult.error_messages[i])); } } } diff --git a/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_handler.js b/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_handler.js index c65010618..1b1843cf6 100644 --- a/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_handler.js +++ b/datamodels/2.x/itop-portal-base/portal/public/js/portal_form_handler.js @@ -252,7 +252,8 @@ $(function() } else { - oHelpBlock.append($('
' + sMessageContent + '
')); + // transform error message in pure text (to avoid XSS) + oHelpBlock.append($('').text(sMessageContent)); } } } diff --git a/sources/Form/Validator/MultipleChoicesValidator.php b/sources/Form/Validator/MultipleChoicesValidator.php index 1c34eb6cc..769a45d30 100644 --- a/sources/Form/Validator/MultipleChoicesValidator.php +++ b/sources/Form/Validator/MultipleChoicesValidator.php @@ -53,7 +53,6 @@ class MultipleChoicesValidator extends AbstractValidator private function CheckValueAgainstChoices(string $sValue, array &$aErrorMessages): void { if (false === array_key_exists($sValue, $this->aChoices)) { - $sValue = utils::HtmlEntities($sValue); $aErrorMessages[] = "Value ({$sValue}) is not part of the field possible values list"; } } diff --git a/sources/Form/Validator/SelectObjectValidator.php b/sources/Form/Validator/SelectObjectValidator.php index 3794a353e..a4d0c69cd 100644 --- a/sources/Form/Validator/SelectObjectValidator.php +++ b/sources/Form/Validator/SelectObjectValidator.php @@ -37,7 +37,6 @@ class SelectObjectValidator extends AbstractValidator $iObjectsCount = $oSetForExistingCurrentValue->CountWithLimit(1); if ($iObjectsCount === 0) { - $value = utils::HtmlEntities($value); return ["Value $value does not match the corresponding filter set"]; }