Pregunta

mi sitio de redes sociales es w3c xhtml válido, sin embargo, los usuarios pueden publicar informes de blog y cosas y, a veces, ingresar caracteres en "y", que a su vez estropean mi validación. ¿Cómo puedo solucionar este problema y hay otros caracteres únicos que debo tener en cuenta que podrían desordenar mi validación?

¿Fue útil?

Solución

Cuando muestre contenido producido por el usuario, ejecútelo a través de la función htmlspecialchars () .

Otros consejos

Como cuestión de principio general, es un error incluir contenido enviado por el usuario (o cualquier otro contenido externo) en su página directamente sin validación ni filtrado. Además de causar errores de validación, también puede causar " páginas rotas " y grandes agujeros de seguridad (ataques de secuencias de comandos entre sitios).

Siempre que obtenga datos de en cualquier lugar que no sean 100% confiables, debe hacerlo de alguna manera seguro. Puedes hacer esto haciendo algunos o todos:

  1. Escape de texto para que los caracteres especiales sean reemplazados por las entidades HTML que los representan.
  2. Eliminación o filtrado de etiquetas HTML no seguras.
  3. Validando que HTML no contiene ninguna construcción insegura o ilegal.

Si su entrada de usuario debe interpretarse como texto, entonces está mirando principalmente la opción 1; si está permitiendo que los usuarios usen HTML, entonces está viendo las opciones 2 y 3. Una cuarta opción es hacer que los usuarios usen un marcado no HTML más restrictivo, como Markdown o bbCode, que traduzcan entre ese marcado y HTML usando un biblioteca que (con suerte) no permite la inyección de agujeros de seguridad, construcciones que rompen páginas u otras cosas de miedo.

Es una mala idea permitir que los usuarios ingresen el código HTML.

Esto permite todo tipo de cosas desagradables, especialmente las explotaciones de scripts entre sitios (XSS) y la inyección de spam oculto (oculto para usted, no para los robots de los motores de búsqueda).

Deberías:

  • Borre todas las etiquetas HTML usando htmlspecialchars () y solo conserve las nuevas líneas con nl2br () . Puede permitir algún formato implementando su propio marcado seguro que solo permita etiquetas muy específicas (cosas como phpBB o marcado similar a Wiki).

  • Use Purificador de HTML para eliminar de manera confiable todas las marcas potencialmente peligrosas. La función strip_tags () de PHP está fundamentalmente dañada y permite códigos peligrosos en los atributos si utiliza el argumento de la lista blanca.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top