Skip to content

Commit ad44b91

Browse files
committed
avoid html injection
1 parent 17d93a8 commit ad44b91

3 files changed

Lines changed: 23 additions & 4 deletions

File tree

docs/dist/v1/chartifact.host.umd.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3653,7 +3653,7 @@ ${guardedJs}
36533653
return;
36543654
}
36553655
let docIndex = 0;
3656-
host.toolbar.innerHTML = folder.title + `(${folder.docs.length} documents)`;
3656+
host.toolbar.innerText = folder.title + `(${folder.docs.length} documents)`;
36573657
host.toolbar.style.display = "block";
36583658
const prevBtn = document.createElement("button");
36593659
prevBtn.textContent = "Previous";
@@ -4136,7 +4136,16 @@ ${message}
41364136
${details}`;
41374137
this.render(markdown, void 0);
41384138
} else {
4139-
this.appDiv.innerHTML = `<h1>Error</h1><p>${message}</p><p>${details}</p>`;
4139+
this.appDiv.innerHTML = "";
4140+
const h1 = document.createElement("h1");
4141+
h1.textContent = "Error";
4142+
const pMessage = document.createElement("p");
4143+
pMessage.textContent = message;
4144+
const pDetails = document.createElement("p");
4145+
pDetails.textContent = details;
4146+
this.appDiv.appendChild(h1);
4147+
this.appDiv.appendChild(pMessage);
4148+
this.appDiv.appendChild(pDetails);
41404149
}
41414150
}
41424151
bindTextareaToCompiler() {

packages/host/src/folder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export function loadFolder(folderUrl: string, folder: Folder, host: Listener) {
3434

3535
let docIndex = 0;
3636

37-
host.toolbar.innerHTML = folder.title + `(${folder.docs.length} documents)`;
37+
host.toolbar.innerText = folder.title + `(${folder.docs.length} documents)`;
3838
host.toolbar.style.display = 'block';
3939

4040
// Create Previous and Next buttons

packages/host/src/listener.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,17 @@ export class Listener {
160160
const markdown = `# Error:\n${message}\n\n${details}`;
161161
this.render(markdown, undefined);
162162
} else {
163-
this.appDiv.innerHTML = `<h1>Error</h1><p>${message}</p><p>${details}</p>`;
163+
// Clear previous content
164+
this.appDiv.innerHTML = '';
165+
const h1 = document.createElement('h1');
166+
h1.textContent = 'Error';
167+
const pMessage = document.createElement('p');
168+
pMessage.textContent = message;
169+
const pDetails = document.createElement('p');
170+
pDetails.textContent = details;
171+
this.appDiv.appendChild(h1);
172+
this.appDiv.appendChild(pMessage);
173+
this.appDiv.appendChild(pDetails);
164174
}
165175
}
166176

0 commit comments

Comments
 (0)