todos los DOM del sitio web de mi amigo usan texto interno en lugar de HTML interno. Intenté todas las formas posibles que conozco, pero ninguna funciona. ¿De todos modos puedo omitir el texto interno y hacer que la etiqueta funcione como con la etiqueta HTML interna?
Gracias
¿Por qué no simplemente usar innerHTML? y luego use DOMPurify para desinfectar su DOM. encuentra cualquier forma potencial en la que el usuario pueda agregar datos como javascript:alert('hacked'); y los hace como HTML normal.
DOMPurify es un desinfectante XSS ultrarrápido, súper tolerante y solo DOM para HTML, MathML y SVG.
mira el siguiente ejemplo:
DOMPurify.sanitize('<img src=x onerror=alert(1)//>'); // becomes <img src="x">puede usar el método de desinfección y luego envolver su campo html o, en este caso, la imagen para evitar xss
otro ejemplo,
const html = `<input type="text" name="text" />`; ELEMENT.innerHTML = DOMPurify.sanitize(html, { // optional configurations // })entonces, si un usuario intenta agregar, por ejemplo, una imagen dentro de la entrada como
DOMpurify notifica la carga en la imagen y la elimina del envío