Skip to content

Commit 687d7c6

Browse files
committed
fix: escape user-controlled strings in modal helpers to prevent XSS
1 parent 050a622 commit 687d7c6

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

frontend/dist/src/main.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,20 @@ document.getElementById("modal-overlay").addEventListener("click", function(e) {
4343
});
4444

4545
async function showInfo(title, message) {
46-
showModal(title, "<p style='white-space: pre-wrap;'>" + message + "</p>",
46+
showModal(title, "<p style='white-space: pre-wrap;'>" + escapeHtml(message) + "</p>",
4747
'<button class="btn" onclick="closeModal()">OK</button>'
4848
);
4949
}
5050

5151
async function showError(title, message) {
52-
showModal(title, "<p style='white-space: pre-wrap; color: var(--log-error)'>" + message + "</p>",
52+
showModal(title, "<p style='white-space: pre-wrap; color: var(--log-error)'>" + escapeHtml(message) + "</p>",
5353
'<button class="btn" onclick="closeModal()">OK</button>'
5454
);
5555
}
5656

5757
async function showConfirm(title, message) {
5858
return new Promise(function(resolve) {
59-
showModal(title, "<p>" + message + "</p>",
59+
showModal(title, "<p>" + escapeHtml(message) + "</p>",
6060
'<button class="btn btn-danger" onclick="closeModal(); resolveConfirm(false)">No</button>' +
6161
'<button class="btn btn-primary" onclick="closeModal(); resolveConfirm(true)">Yes</button>'
6262
);
@@ -66,7 +66,7 @@ async function showConfirm(title, message) {
6666

6767
async function showConfirmCancel(title, message) {
6868
return new Promise(function(resolve) {
69-
showModal(title, "<p>" + message + "</p>",
69+
showModal(title, "<p>" + escapeHtml(message) + "</p>",
7070
'<button class="btn" onclick="closeModal(); resolveConfirmCancel(null)">Cancel</button>' +
7171
'<button class="btn btn-danger" onclick="closeModal(); resolveConfirmCancel(false)">No</button>' +
7272
'<button class="btn btn-primary" onclick="closeModal(); resolveConfirmCancel(true)">Yes</button>'

0 commit comments

Comments
 (0)