fix: error when invalid iframe in markdown (#5985)
This commit is contained in:
@@ -49,23 +49,25 @@ export const configuredXss = new FilterXSS({
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const url = new URL(value)
|
try {
|
||||||
|
const url = new URL(value)
|
||||||
|
|
||||||
for (const source of allowedSources) {
|
for (const source of allowedSources) {
|
||||||
if (!source.url.test(url.href)) {
|
if (!source.url.test(url.href)) {
|
||||||
continue
|
continue
|
||||||
}
|
|
||||||
|
|
||||||
const newSearchParams = new URLSearchParams(url.searchParams)
|
|
||||||
url.searchParams.forEach((value, key) => {
|
|
||||||
if (!source.allowedParameters.some((param) => param.test(`${key}=${value}`))) {
|
|
||||||
newSearchParams.delete(key)
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
|
||||||
url.search = newSearchParams.toString()
|
const newSearchParams = new URLSearchParams(url.searchParams)
|
||||||
return `${name}="${escapeAttrValue(url.toString())}"`
|
url.searchParams.forEach((value, key) => {
|
||||||
}
|
if (!source.allowedParameters.some((param) => param.test(`${key}=${value}`))) {
|
||||||
|
newSearchParams.delete(key)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
url.search = newSearchParams.toString()
|
||||||
|
return `${name}="${escapeAttrValue(url.toString())}"`
|
||||||
|
}
|
||||||
|
} catch {}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For Highlight.JS
|
// For Highlight.JS
|
||||||
|
|||||||
Reference in New Issue
Block a user