Add DOMPurify

This commit is contained in:
Alex Gleason
2024-01-17 12:21:19 -06:00
parent e281fbade9
commit 4aa6fdb4dd
7 changed files with 34 additions and 10 deletions

View File

@ -1,6 +1,7 @@
/**
* Status edit normalizer
*/
*/
import * as DOMPurify from 'dompurify';
import escapeTextContentForBrowser from 'escape-html';
import {
Map as ImmutableMap,
@ -60,8 +61,8 @@ const normalizeStatusPoll = (statusEdit: ImmutableMap<string, any>) => {
const normalizeContent = (statusEdit: ImmutableMap<string, any>) => {
const emojiMap = makeEmojiMap(statusEdit.get('emojis'));
const contentHtml = stripCompatibilityFeatures(emojify(statusEdit.get('content'), emojiMap));
const spoilerHtml = emojify(escapeTextContentForBrowser(statusEdit.get('spoiler_text')), emojiMap);
const contentHtml = DOMPurify.sanitize(stripCompatibilityFeatures(emojify(statusEdit.get('content'), emojiMap)), { ADD_ATTR: ['target'] });
const spoilerHtml = DOMPurify.sanitize(emojify(escapeTextContentForBrowser(statusEdit.get('spoiler_text')), emojiMap), { ADD_ATTR: ['target'] });
return statusEdit
.set('contentHtml', contentHtml)