Desinfectar el contenido del elemento <script>

Digamos que quiero proporcionar algunos datos a mi cliente (en la primera respuesta, sin latencia) a través de una dinámica<script> elemento.

<script><%= payload %></script>

Dilopayload es la cuerdavar data = '</script><script>alert("Muahahaha!")';</script>. Una etiqueta final (</script>) permitirá a los usuarios inyectar scripts arbitrarios en mi página. ¿Cómo desinfecta correctamente los contenidos de mi elemento de script?

Me imagino que podría cambiar</script> a<\/script> y<!-- a<\!--. ¿Hay alguna otra cadena peligrosa de la que deba escapar? ¿Hay una mejor manera de proporcionar estos datos de "arranque en frío"?

Respuestas a la pregunta(2)

Su respuesta a la pregunta