para - seo en tu codigo html
¿Qué personajes deben escaparse en HTML? (4)
¿Son lo mismo que XML, quizás más el espacio uno (& ampnbsp;)?
He encontrado algunas listas enormes de caracteres de escape de HTML, pero no creo que deban escapar. Quiero saber de qué se debe escapar.
Básicamente, hay tres personajes principales que siempre deben escaparse en sus archivos HTML y XML, para que no interactúen con el resto de las marcas, así como probablemente lo esté esperando, dos de ellas serán las envolturas synatax, que son <> , se enumeran a continuación:
1) < (<)
2) > (>)
3) & (&)
También podemos usar comillas dobles (") como" y la comilla simple ('') como & apos
Evite poner contenido dinámico en <script>
y <style>
. Estas reglas no se aplican para ellos. Por ejemplo, si debe incluir JSON en a, reemplace <con / x3c, el carácter U + 2028 con / u2028 y U + 2029 con / u2029 después de la serialización JSON).
Caracteres HTML Escape: lista completa: http://www.theukwebdesigncompany.com/articles/entity-escape-characters.php
Entonces necesitas escapar <, o & cuando lo sigue cualquier cosa que pueda comenzar una referencia de personaje. Además, la regla sobre los signos y símbolos es la única regla de este tipo para los atributos entrecomillados, ya que la comilla coincidente es la única que dará por terminada una. Pero si no desea finalizar el valor de atributo allí, salga de las comillas.
Cambiar a UTF-8 significa volver a guardar su archivo:
Usar la codificación de caracteres UTF-8 para su página significa que puede evitar la necesidad de la mayoría de las escapadas y simplemente trabajar con los personajes. Sin embargo, tenga en cuenta que para cambiar la codificación de su documento, no basta con cambiar la declaración de codificación en la parte superior de la página o en el servidor. Necesita volver a guardar su documento en esa codificación. Para obtener ayuda sobre cómo hacer eso con su aplicación, lea Configuración de codificación en aplicaciones de creación web.Caracteres invisibles o ambiguos:
Una función particularmente útil para escapes es representar caracteres invisibles o ambiguos en la presentación.
Un ejemplo sería el carácter Unicode U + 200F RIGHT-TO-LEFT MARK. Este carácter se puede utilizar para aclarar la direccionalidad en texto bidireccional (por ejemplo, cuando se utilizan los scripts en árabe o en hebreo). Sin embargo, no tiene forma gráfica, por lo que es difícil ver dónde se encuentran estos caracteres en el texto, y si se pierden u olvidan podrían generar resultados inesperados durante la edición posterior. Usar (o su equivalente de referencia de carácter numérico) en su lugar hace que sea muy fácil detectar estos caracteres.
Un ejemplo de un carácter ambiguo es U + 00A0 NO-BREAK SPACE. Este tipo de espacio evita que se rompa la línea, pero se ve como cualquier otro espacio cuando se usa como personaje. El uso deja bastante claro dónde aparecen tales espacios en el texto.
Depende del contexto. Algunos contextos posibles en HTML:
- cuerpo del documento
- dentro de los atributos comunes
- dentro de las etiquetas de script
- dentro de las etiquetas de estilo
- ¡varios más!
Consulte la Hoja de referencia de prevención de scripts cruzados de OWASP, especialmente las secciones " ¿Por qué no puedo simplemente codificar la entidad HTML? " Y " Normas de prevención XSS ". Sin embargo, es mejor leer todo el documento.
La respuesta exacta depende del contexto. En general, estos caracteres no deben estar presentes ( HTML 5.2 §3.2.4.2.5 ):
Los nodos de texto y los valores de atributo deben constar de caracteres Unicode, no deben contener U + 0000 caracteres, no deben contener caracteres Unicode permanentemente indefinidos (no caracteres) y no deben contener caracteres de control que no sean caracteres espaciales. Esta especificación incluye restricciones adicionales sobre el valor exacto de los nodos de texto y los valores de atributo dependiendo de su contexto preciso.
Para los elementos en HTML, las restricciones del modelo de contenido de texto también dependen del tipo de elemento. Por ejemplo, un "<" dentro de un elemento textarea no necesita ser escapado en HTML porque textarea es un elemento de texto sin formato escapable.
Estas restricciones están dispersas a través de la especificación. Por ejemplo, los valores de los atributos ( §8.1.2.3 ) no deben contener un ampersand ambiguo y deben estar (i) vacíos, (ii) dentro de comillas simples (y por lo tanto no deben contener U + 0027 caracteres APOSTROPHE ''
), (iii) entre comillas dobles (no debe contener el carácter U + 0022 QUOTATION MARK "
), o (iv) sin comillas - con las siguientes restricciones:
... no debe contener ningún espacio literal, ningún U + 0022 caracteres de COMUNICACIÓN MARK ("), U + 0027 APOSTROPHE caracteres (''), U + 003D EQUALS SIGN caracteres (=), U + 003C MENOS QUE SIGNOS caracteres ( <), U + 003E MAYOR DE EN SIGNO de caracteres (>), o U + 0060 caracteres de ACENTO DE GRAVE (`), y no debe ser la cadena vacía.
Si su documento es unicode, solo necesita escapar los mismos que para XML en su texto [ spec ] [ doc ] :
& becomes &
< becomes <
> becomes >
En los valores de atributo también debe escapar el carácter de cotización [ spec ] :
" becomes "
'' becomes '
Si su documento es ASCII u otra codificación que no sea Unicode y está usando caracteres que no son compatibles, tendrá que escapar de ellos. De lo contrario, estás bien 1 .
Por lo general, no desea escapar espacios como
.
no es un espacio normal, es un espacio no disruptivo [ wiki ] . Puede usar estos espacios en lugar de los normales para evitar que se inserte un salto de línea entre dos palabras, o para insertar espacio extra sin que se cierre automáticamente, pero no tendrá que hacer esto muy a menudo.
1 Estás bien, siempre y cuando estés insertando el texto escapado en alguna parte, tiene sentido insertar texto ordinario (es decir, no dentro de una etiqueta <style>
o <script>
, y no dentro de un valor de atributo). De lo contrario, debe tomar otras precauciones como se menciona en la respuesta de daxelrod y se describe aquí por el proyecto de seguridad de aplicaciones web abiertas .