diff --git a/core/lib/presentation/utils/html_transformer/text/sanitize_html_transformers.dart b/core/lib/presentation/utils/html_transformer/text/sanitize_html_transformers.dart new file mode 100644 index 000000000..baf2b9cd7 --- /dev/null +++ b/core/lib/presentation/utils/html_transformer/text/sanitize_html_transformers.dart @@ -0,0 +1,17 @@ + +import 'dart:convert'; + +import 'package:core/presentation/utils/html_transformer/base/text_transformer.dart'; +import 'package:core/utils/app_logger.dart'; + +class SanitizeHtmlTransformers extends TextTransformer { + + const SanitizeHtmlTransformers(); + + @override + String process(String text) { + final htmlEncoded = const HtmlEscape().convert(text); + log('HtmlSanitizerTransformers::process:htmlEncoded: $htmlEncoded'); + return htmlEncoded; + } +} \ No newline at end of file diff --git a/lib/features/email/data/local/html_analyzer.dart b/lib/features/email/data/local/html_analyzer.dart index e98423989..465507a18 100644 --- a/lib/features/email/data/local/html_analyzer.dart +++ b/lib/features/email/data/local/html_analyzer.dart @@ -3,6 +3,7 @@ import 'package:core/data/network/dio_client.dart'; import 'package:core/presentation/utils/html_transformer/dom/add_tooltip_link_transformers.dart'; import 'package:core/presentation/utils/html_transformer/html_transform.dart'; import 'package:core/presentation/utils/html_transformer/text/convert_url_string_to_html_links_transformers.dart'; +import 'package:core/presentation/utils/html_transformer/text/sanitize_html_transformers.dart'; import 'package:core/presentation/utils/html_transformer/transform_configuration.dart'; import 'package:model/email/email_content.dart'; import 'package:model/email/email_content_type.dart'; @@ -33,8 +34,13 @@ class HtmlAnalyzer { case EmailContentType.textPlain: final htmlTransform = HtmlTransform(emailContent.content); final message = htmlTransform.transformToTextPlain( - transformConfiguration: TransformConfiguration.create( - customTextTransformers: [const ConvertUrlStringToHtmlLinksTransformers()])); + transformConfiguration: TransformConfiguration.create( + customTextTransformers: [ + const ConvertUrlStringToHtmlLinksTransformers(), + const SanitizeHtmlTransformers(), + ] + ) + ); return EmailContent(emailContent.type, message); default: return emailContent;