This reverts commit f34845fd7d99dc46eb1e182a55e3b3f276245388.
This commit is contained in:
parent
a6a6e73b04
commit
c08139b812
@ -30,8 +30,8 @@ export const configuredXss = new xss.FilterXSS({
|
|||||||
const allowedSources = [
|
const allowedSources = [
|
||||||
{
|
{
|
||||||
regex:
|
regex:
|
||||||
/^https?:\/\/(www\.)?youtube(-nocookie)?\.com\/embed\/[a-zA-Z0-9_-]{11}((&|\?)\w+=\w+)*$/,
|
/^https?:\/\/(www\.)?youtube(-nocookie)?\.com\/embed\/[a-zA-Z0-9_-]{11}(\?&autoplay=[0-1]{1})?$/,
|
||||||
remove: ['autoplay=1'], // Prevents autoplay
|
remove: ['&autoplay=1'], // Prevents autoplay
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
regex: /^https?:\/\/(www\.)?discord\.com\/widget\?id=\d{18,19}(&theme=\w+)?$/,
|
regex: /^https?:\/\/(www\.)?discord\.com\/widget\?id=\d{18,19}(&theme=\w+)?$/,
|
||||||
@ -42,22 +42,7 @@ export const configuredXss = new xss.FilterXSS({
|
|||||||
for (const source of allowedSources) {
|
for (const source of allowedSources) {
|
||||||
if (source.regex.test(value)) {
|
if (source.regex.test(value)) {
|
||||||
for (const remove of source.remove) {
|
for (const remove of source.remove) {
|
||||||
let index = value.indexOf(remove);
|
value = value.replace(remove, '')
|
||||||
do {
|
|
||||||
if (index - 1 > 0 && value.charAt(index - 1) === '?') {
|
|
||||||
// need to watch out for two things
|
|
||||||
// case where its ?stand=alone
|
|
||||||
// case where its ?followed=by&another=queryParam
|
|
||||||
if (index + remove.length < value.length && value.charAt(index + remove.length) === '&') {
|
|
||||||
value = value.replace(`${remove}&`, '');
|
|
||||||
} else if (index + remove.length >= value.length) {
|
|
||||||
value = value.replace(`?${remove}`, '');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
value = value.replaceAll(`&${remove}`, ''); // can safely be removed
|
|
||||||
}
|
|
||||||
index = value.indexOf(remove);
|
|
||||||
} while (index !== -1);
|
|
||||||
}
|
}
|
||||||
return name + '="' + xss.escapeAttrValue(value) + '"'
|
return name + '="' + xss.escapeAttrValue(value) + '"'
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user