From e6465ec6ec73832790c0c0cc17bc6ee9d372129b Mon Sep 17 00:00:00 2001
From: Felix Oswald <52625423+felixoswald@users.noreply.github.com>
Date: Fri, 18 Mar 2022 15:15:31 +0100
Subject: [PATCH 1/4] Fix birth location link
---
src/controllers/itemDetails/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
index 762d4ce83e..a54cce5626 100644
--- a/src/controllers/itemDetails/index.js
+++ b/src/controllers/itemDetails/index.js
@@ -669,7 +669,7 @@ function reloadFromItem(instance, page, params, item, user) {
location = `${location}`;
}
itemBirthLocation.classList.remove('hide');
- itemBirthLocation.innerText = globalize.translate('BirthPlaceValue', location);
+ itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', location);
} else {
itemBirthLocation.classList.add('hide');
}
From 55ad352d08e4162d1e99114b044176545f012501 Mon Sep 17 00:00:00 2001
From: Felix Oswald <52625423+felixoswald@users.noreply.github.com>
Date: Fri, 18 Mar 2022 21:17:19 +0100
Subject: [PATCH 2/4] escaped location to prevent xss
---
src/controllers/itemDetails/index.js | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
index a54cce5626..3f68b5badc 100644
--- a/src/controllers/itemDetails/index.js
+++ b/src/controllers/itemDetails/index.js
@@ -666,10 +666,12 @@ function reloadFromItem(instance, page, params, item, user) {
if (item.Type == 'Person' && item.ProductionLocations && item.ProductionLocations.length) {
let location = item.ProductionLocations[0];
if (!layoutManager.tv && appHost.supports('externallinks')) {
- location = `${location}`;
+ itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', ``);
+ page.querySelector('#itemBirthLocation > a').innerText = `${location}`;
+ } else {
+ itemBirthLocation.innerText = globalize.translate('BirthPlaceValue', `${location}`);
}
itemBirthLocation.classList.remove('hide');
- itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', location);
} else {
itemBirthLocation.classList.add('hide');
}
From 2521b0614225db9a6f6a063c2eccf754d74fb15f Mon Sep 17 00:00:00 2001
From: Felix Oswald <52625423+felixoswald@users.noreply.github.com>
Date: Sat, 19 Mar 2022 09:50:40 +0100
Subject: [PATCH 3/4] escaped location with escapeHtml()
---
src/controllers/itemDetails/index.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
index 3f68b5badc..4cb329b2e4 100644
--- a/src/controllers/itemDetails/index.js
+++ b/src/controllers/itemDetails/index.js
@@ -666,12 +666,12 @@ function reloadFromItem(instance, page, params, item, user) {
if (item.Type == 'Person' && item.ProductionLocations && item.ProductionLocations.length) {
let location = item.ProductionLocations[0];
if (!layoutManager.tv && appHost.supports('externallinks')) {
- itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', ``);
- page.querySelector('#itemBirthLocation > a').innerText = `${location}`;
+ location = `${escapeHtml(location)}`;
} else {
- itemBirthLocation.innerText = globalize.translate('BirthPlaceValue', `${location}`);
+ location = escapeHtml(location);
}
itemBirthLocation.classList.remove('hide');
+ itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', location);
} else {
itemBirthLocation.classList.add('hide');
}
From 659657b62d5f81a3d9acd6af48fa4f48ad4132fd Mon Sep 17 00:00:00 2001
From: Felix Oswald <52625423+felixoswald@users.noreply.github.com>
Date: Sat, 19 Mar 2022 11:26:03 +0100
Subject: [PATCH 4/4] escaped ExternalUrls with escapeHtml()
---
src/controllers/itemDetails/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
index 4cb329b2e4..9e90345841 100644
--- a/src/controllers/itemDetails/index.js
+++ b/src/controllers/itemDetails/index.js
@@ -747,7 +747,7 @@ function renderLinks(page, item) {
if (item.ExternalUrls) {
for (const url of item.ExternalUrls) {
- links.push(`${url.Name}`);
+ links.push(`${escapeHtml(url.Name)}`);
}
}