Estamos creando un sitio de contenido generado por el usuario en el que queremos permitir a los usuarios insertar cosas como videos, diapositivas, etc. ¿Alguien puede recomendar una lista generalmente aceptada de etiquetas/atributos para permitir que los rieles se desinfecten y que nos proporcionen una seguridad bastante buena, al mismo tiempo que se permite una buena cantidad del contenido embedable/formato html?Rieles Desinfecte: Seguridad + Permitir incrustaciones
Respuesta
Mientras esté apagado, debería poder permitir objetos. Incluso es posible que pueda definir los parámetros aceptables reales de las etiquetas de objeto, de modo que solo permita una lista blanca y no se puedan incluir objetos abitrarios.
Sin embargo, puede ser mejor proporcionar algún soporte de interfaz de usuario para incrustación. Por ejemplo, solicito al usuario una URL de YouTube y luego obtengo el código de inserción para el video.
varios beneficios: - el código de YouTube por defecto no es compatible con las normas para que pueda construir mi propio código objeto - Los usuarios que tengo un control completo sobre la forma en que los elementos incorporados se incluyen en la página de salida
Honestamente diciendo que permiten utilizar los editores WYSIWYG Html puede sonar bien, pero en la práctica no funciona bien tanto para usuarios como para desarrolladores. Las razones son:
- Comportamiento demasiado diferente en diferentes navegadores.
- La lista blanca permite proteger el sitio, pero los usuarios terminarán llamando y pidiendo que se permita otro parámetro para la etiqueta OBJECT o similar. Las listas negras simplemente no son seguras.
- No muchos usuarios saben qué etiqueta HTML es.
- Para los usuarios es difícil formatear texto (¿cómo puedes decirles que utilicen HEADER en lugar de BOLD + FONT-SIZE).
- En general, es bastante doloroso y no se puede cambiar realmente el diseño del sitio si es necesario porque los usuarios no usaron HTML correctamente.
Si estaría haciendo sistema CMS-como ahora, probablemente me vaya con semántica marcado.
La mayoría de los usuarios se acostumbran rápidamente y es solo texto plano (como aquí en SO).
Además, USTED puede generar HTML adecuado y etiquetas de soporte necesarias.
Por ejemplo, si necesita integrar imagen que puede escribir algo como:
mi cara: imagen- http://here.there/bla.gif
lo que generaría HTML para que de esta manera:
<a class='image-link' title='My Face' href='http://here.there/bla.gif'>
<img alt='My Face' src='http://here.there/bla.gif' />
</a>
Hay muchos lenguajes de marcado, así que solo escoja uno que sea más apropiado para usted y agregue sus propias modificaciones. Por ejemplo, GitHub usa markdown
modificado y el código para analizarlo es solo couple de líneas.
Una desventaja es que los usuarios necesitan aprender el idioma y NO ES WYSIWYG.
Atentamente,
Dmitriy.
Hay un gran proyecto para esto. Incluso se incrustar-análisis para permitir sólo incrusta youtube, por ejemplo
- 1. Implicaciones de seguridad de permitir el encuadre?
- 2. permitir negar recordar flash panel de seguridad
- 3. ¿Detener todas las incrustaciones iframe de YouTube?
- 4. ¿Cómo evito las incrustaciones en Android Imageview?
- 5. Transformación CSS y incrustaciones de YouTube
- 6. ¿Hay algún complemento de prueba de seguridad para los rieles?
- 7. Detener con seguridad em-websocket en rieles en thin
- 8. Seguridad de rieles en el servidor de producción
- 9. ¿El modelo de seguridad de lienzo ignora los encabezados de control de acceso-permitir-origen?
- 10. rails 3.1: ¿cómo anular inherited_resources y permitir que los andamios de rieles funcionen normalmente de nuevo?
- 11. Rieles 3 - Manejar mensajes entrantes (Permitir a los usuarios responder a las notificaciones por correo electrónico)
- 12. Rieles: permitir la descarga de archivos almacenados en S3 sin mostrar la URL S3 real al usuario
- 13. Administración de la seguridad de una aplicación de rieles 3 de código abierto almacenada en github
- 14. Permitir curl en php5
- 15. Mysql: Permitir nulo significado
- 16. TinyMCE, permitir datos atributo
- 17. rieles ActionMailer con SendGrid
- 18. ¿Es posible permitir Cross Site Scripting (XSS) en Mobile safari?
- 19. Backbone.js Seguridad
- 20. Seguridad Jar
- 21. métodos Rieles Redefiniendo
- 22. ¿Se debe permitir Unicode en los nombres de usuario?
- 23. Robots.txt: permitir solo mayor SE
- 24. Mac PackageMaker - Permitir Reubicación Cuestiones
- 25. Permitir asterisco en la URL
- 26. Permitir descargas MDB en IIS7
- 27. ¿Debo permitir 'allow_url_fopen' en PHP?
- 28. ¿Cómo permitir ciertas etiquetas html?
- 29. Permitir dirección IP sin autenticación
- 30. Permitir entrada de chino simplificado
¿Estás sugiriendo que algo como de reducción del precio no requiere ningún tipo de saneamiento en absoluto? – Noz
@Noz no, yo no soy. –