enlace toma contenido similar a JSON y lo convierte a JSON que es seguro evaluar como código fuente de JavaScript y que se puede incrustar en los elementos HTML <script>
y en las secciones XML <![CDATA[...]]>
.
Por ejemplo, dado
{
key1: "user_input",
key2: ["user_input1", "user_input2"]
}
Conserva varias propiedades:
- Las claves deben estar correctamente citadas.
- coincidencias de corchetes.
- Todos los caracteres de nueva línea de JavaScript (CR, LF, U + 2028, U + 2029) en cadenas tienen
\u....
de escape.
- Las comillas (
"
), las barras diagonales inversas ( \
) son \u....
de escape para garantizar que las cadenas no terminen prematuramente.
- Los paréntesis angulares (
<
y >
) se escapan \u....
según sea necesario para evitar que las cadenas contengan el texto literal </script
o ]]>
, lo que evitaría la incrustación.
- Todos los caracteres de control (en realidad, los caracteres no permitidos en XML) son
\u....
escapado incluyendo U + 0-U + 1F excluyendo la pestaña, U + 7F, U + FFFE, U + FFFF.
- Los sustitutos huérfanos de UTF-16 son
\u....
escaped.
- Todas las secuencias de escape se convierten en secuencias de escape JSON válidas, que incluyen escapes octales (
2
), escapes hexadecimales de dos dígitos ( \x0A
) y escapes de un solo carácter ( \!
).
Puede ser una buena idea que \u....
escape cosas como +
para desfigurar UTF-7.