Cómo garantizar que los archivos cargados por los usuarios no contengan ningún código XSS

6

He estado trabajando para proporcionar la seguridad relacionada con los ataques XSS. Mi sitio web solo permite los siguientes tipos de mimo:

XML, CSV, HTML, PLAIN, VND_WAP_WML, APPLICATION_ZIP, APPLICATION_PDF, APPLICATION_VND_FDF, APPLICATION_MS_WORD, APPLICATION_OCTET_STREAM, APPLICATION_VND_MS_POWERPOINT, APPLICATION_X_VISIO, IMAGE_GIF, IMAGE_PNG, IMAGE_TIF, APPLICATION_VND_MS_OUTLOOK, APPLICATION_DOWNLOAD, APPLICATION_JSON

He limpiado archivos HTML con antiSamy. ¿Cómo puedo asegurarme de que los datos de los archivos estén seguros antes de cargarlos en la base de datos y evitar los ataques XSS persistentes?

    
pregunta Prerit 15.07.2013 - 10:32
fuente

2 respuestas

6

No puedes, realmente.

Puede reducir las posibilidades de que el contenido se ejecute HTML al servir archivos con un encabezado X-Content-Type-Options: nosniff , y tratar de evitar que se traten como páginas HTML al servir con Content-Disposition: attachment , pero todavía tiene que preocuparse por los navegadores más antiguos , y complementos del navegador. (Por ejemplo, el SOP roto de Java y el dominio de código XML de Flash.)

La mejor solución alternativa si tiene que aceptar archivos subidos por usuarios es servirlos desde un dominio separado, de modo que cualquier ataque XSS no pueda comprometer el sitio principal.

    
respondido por el bobince 15.07.2013 - 12:37
fuente
0

no puedes.

pdf permite la inclusión de datos codificados / comprimidos, las cadenas se pueden adjuntar a imágenes, etc. pp; necesitarías revisar todos los archivos que se cargan con un tercer software (sourcefire construye algo como un analizador de este tipo para pdf / zip - datos para extender snort, usando lua iirc; pero no sé el estado de ese proyecto)

    
respondido por el that guy from over there 15.07.2013 - 12:12
fuente

Lea otras preguntas en las etiquetas