Sanitize unknown node types on load to prevent XSS.

This commit is contained in:
comfyanonymous 2023-11-05 12:29:28 -05:00
parent 1ffa8858e7
commit 02f062b5b7
1 changed files with 17 additions and 0 deletions

View File

@ -5,6 +5,22 @@ import { api } from "./api.js";
import { defaultGraph } from "./defaultGraph.js";
import { getPngMetadata, getWebpMetadata, importA1111, getLatentMetadata } from "./pnginfo.js";
function sanitizeNodeName(string) {
let entityMap = {
'&': '',
'<': '',
'>': '',
'"': '',
"'": '',
'`': '',
'=': ''
};
return String(string).replace(/[&<>"'`=\/]/g, function fromEntityMap (s) {
return entityMap[s];
});
}
/**
* @typedef {import("types/comfy").ComfyExtension} ComfyExtension
*/
@ -1480,6 +1496,7 @@ export class ComfyApp {
// Find missing node types
if (!(n.type in LiteGraph.registered_node_types)) {
n.type = sanitizeNodeName(n.type);
missingNodeTypes.push(n.type);
}
}