Estoy tratando de implementar la regla 1 en la hoja de trucos de prevención OWASP XSS . La regla 1 establece que los siguientes caracteres deben codificarse antes de insertarlos en el cuerpo de un <div> :
& --> & < --> < > --> > " --> " ' --> 'Mi objetivo es insertar los caracteres codificados en el DOM y hacer que se representen como sus valores no codificados. Sin embargo, esto no parece ser posible, con comillas .
Cuando pones " o ' en el HTML interno de un div, el navegador lo vuelve a convertir a " o ' .
document.getElementById("encodingNotWorking").innerHTML = "& > < " ' ' "" let domData = document.getElementById("encodingNotWorking").innerHTML; document.getElementById("actualCharacters").innerText = domData; Encoded quote characters: <div id = "encodingNotWorking"> </div> Characters in the dom: <div id = "actualCharacters"> </div>( JSFiddle )
¿Cómo puedo poner las entidades codificadas (comillas) en el DOM, hacer que se representen como sus valores no codificados y verificar que las entidades codificadas estén realmente en el DOM?