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) {
|
||||
if (!source.url.test(url.href)) {
|
||||
continue
|
||||
}
|
||||
|
||||
const newSearchParams = new URLSearchParams(url.searchParams)
|
||||
url.searchParams.forEach((value, key) => {
|
||||
if (!source.allowedParameters.some((param) => param.test(`${key}=${value}`))) {
|
||||
newSearchParams.delete(key)
|
||||
for (const source of allowedSources) {
|
||||
if (!source.url.test(url.href)) {
|
||||
continue
|
||||
}
|
||||
})
|
||||
|
||||
url.search = newSearchParams.toString()
|
||||
return `${name}="${escapeAttrValue(url.toString())}"`
|
||||
}
|
||||
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()
|
||||
return `${name}="${escapeAttrValue(url.toString())}"`
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
|
||||
// For Highlight.JS
|
||||
|
||||
Reference in New Issue
Block a user