Pregunta

Estoy tratando de encontrar maneras de desinfectar la entrada del armas de destrucción masiva editor.

En concreto, estoy tratando de hacer que las etiquetas HTML sólo está disponible en las armas de destrucción masiva <code>tags que genera. ¿Es eso posible

Mi problema es que el código siguiente se representa como HTML que es vunerable a potenciales ataques XSS .

Por ejemplo, <a onmouseover="alert(1)" href="#">read this!</a>

El código anterior hace normalmente tanto en el modo de vista previa y cuando se guardan en la base de datos.

Me he dado cuenta de que el desbordamiento de pila no parecen tener este problema. El mismo código es sólo representa como texto.

Me he dado cuenta de que el equipo de desbordamiento de la pila ha compartido su código en http://refactormycode.com / códigos / 333-esterilice-html . ¿Realmente tengo que utilizar C # con el fin de higienizar armas de destrucción masiva para hacer esto?

¿Fue útil?

Solución

Terminé usando Purificador HTML para esto.

Otros consejos

Si desea bloquear malos guiones de armas de destrucción masiva en el lado del cliente, echar un vistazo a mi respuesta aquí: Alinear el editor de armas de destrucción masiva de vista previa HTML con la validación de HTML del lado del servidor (por ejemplo, no incrustado código JavaScript) .

Se muestra cómo implementar una lista blanca del lado del cliente en el editor de armas de destrucción masiva para restringir el panel de vista previa de HTML al conocido segura elementos y atributos HTML conocido seguras armas de destrucción masiva. Lo hace la validación después WMD geneates su HTML, por lo que incluso si hay un error en la generación de HTML del editor de armas de destrucción masiva que permite mal guión de conseguir a través, el bloqueador lista blanca no cogerlo. Este código se basa en la aplicación de la misma validación de StackOverflow.com.

Dicho esto, también es necesario la validación del lado del servidor también (Si está usando PHP, Purificador HTML es una opción buena), porque incluso si se fija el cliente, que no impide que un atacante simulando un navegador y el ahorro de rebajas malicioso POST-ción a su servidor. Al hacerlo del lado del cliente armas de destrucción masiva no se requiere realmente vista previa validación, excepto para defenderse de un oscuro caso donde un atacante logra obtener rebaja comprometida en el servidor, y convence a un moderador del sitio para editar la página. En ese caso, el cliente de armas de destrucción masiva de vista previa validación podría evitar que un atacante hacerse cargo de todo el sitio.

Además, haciendo la validación del lado del cliente puede ser útil porque entonces usted sabe que las mismas etiquetas y HTML permitidas por el cliente también serán permitidos en el servidor. Asegúrese de sincronizar la lista blanca del lado del servidor con el cliente lista blanca. Stackoverflow de lista blanca es aquí si quieres un ejemplo.

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