fix: refuse to render non-string Markdown field values (via #5295)
This commit is contained in:
@@ -19,6 +19,10 @@ DomPurify.addHook("beforeSanitizeElements", function (current, ) {
|
|||||||
const isPlainText = (str) => /^[A-Z\s0-9!?\.]+$/gi.test(str)
|
const isPlainText = (str) => /^[A-Z\s0-9!?\.]+$/gi.test(str)
|
||||||
|
|
||||||
function Markdown({ source, className = "" }) {
|
function Markdown({ source, className = "" }) {
|
||||||
|
if (typeof source !== "string") {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
if(isPlainText(source)) {
|
if(isPlainText(source)) {
|
||||||
// If the source text is not Markdown,
|
// If the source text is not Markdown,
|
||||||
// let's save some time and just render it.
|
// let's save some time and just render it.
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ parser.block.ruler.enable(["table"])
|
|||||||
parser.set({ linkTarget: "_blank" })
|
parser.set({ linkTarget: "_blank" })
|
||||||
|
|
||||||
export const Markdown = ({ source, className = "" }) => {
|
export const Markdown = ({ source, className = "" }) => {
|
||||||
|
if(typeof source !== "string") {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
if ( source ) {
|
if ( source ) {
|
||||||
const html = parser.render(source)
|
const html = parser.render(source)
|
||||||
const sanitized = sanitizer(html)
|
const sanitized = sanitizer(html)
|
||||||
|
|||||||
Reference in New Issue
Block a user