¿Cuáles son los riesgos de seguridad de permitir que los usuarios suban contenido a mi sitio?

30

Como diseñador web (no experto en seguridad) me pregunto: si permito a los usuarios cargar contenido en mi sitio web (videos, imágenes y archivos de texto), ¿cuáles son los riesgos reales?

    
pregunta Edgar 19.11.2010 - 08:47
fuente

5 respuestas

26

Hay un par de riesgos al permitir que el contenido se cargue en su sitio, pero la importancia que tengan para usted dependerá de cómo funcionará exactamente el sitio que está diseñando.

Primero se carga el malware. Si un atacante puede cargar malware en su sitio y los usuarios descargan y ejecutan el malware, es probable que sea un problema. La prevención de esto generalmente se basa en una combinación de restricción de los tipos de archivos que se pueden cargar (un punto a tener en cuenta es que no debe confiar solo en la extensión de archivo aquí) y en el uso de escaneo de malware en el contenido cargado. Por supuesto, el lado de escaneo de las cosas solo detendrá las firmas conocidas y se puede omitir con bastante facilidad.

El segundo problema potencial es si pueden cargar contenido activo y hacer que lo ejecute su aplicación. Por ejemplo, si su sitio utiliza php, si pueden cargar un script php y luego ejecutarlo como parte de su aplicación, es probable que puedan tomar el control del servidor, o al menos acceder a otra información existente. en la aplicación.

Un enfoque que he visto para abordar esto es garantizar que los archivos cargados no se coloquen en la raíz web y garantizar que el servidor web no ejecutará archivos desde esa ubicación.

Un tercer riesgo, es que los usuarios suban material "ilegal". Esta puede ser una pregunta legal difícil de ordenar, pero si permite el contenido generado por el usuario, es probable que tenga que lidiar con él tarde o temprano. La solución para esto parece ser principalmente de procedimiento. Tenga una buena relación con su empresa de alojamiento y su ISP y asegúrese de que puede responder a las solicitudes para eliminar el contenido rápidamente, si está alojando en una jurisdicción que requiere que se elimine el contenido si llega una solicitud (por ejemplo, una solicitud de DMCA) ).

    
respondido por el Rоry McCune 19.11.2010 - 09:51
fuente
8

Si su servidor no está bien configurado, podría llevar a la ejecución de código malicioso en el contexto de su servidor y tomar control de sus archivos. Un ejemplo de esto es el conocido backdoor PHP c99shell . Hay algunas recomendaciones para hacer esta característica más segura:

  1. Utilice algún otro dominio (o subdominio) para almacenar los archivos cargados por los usuarios
  2. Asegúrese de que los usuarios no puedan cargar ningún tipo de archivo que ejecutará el servidor (verifique el tipo de contenido o use herramientas específicas del idioma para leer el contenido del archivo y verifique el tipo de mimo correcto)
  3. Asegúrese de que los archivos cargados no tengan permisos para ejecutarse.
  4. Al permitir que otros usuarios descarguen el archivo, a veces es útil forzarlo como archivo adjunto utilizando el encabezado HTTP Content-Disposition
respondido por el bretik 19.11.2010 - 09:51
fuente
1

FileInclude es uno de los peores agujeros de seguridad en los sitios web, solo piensa en lo que sucederá si alguien usa C99 Shell (que es uno de los peores scripts de PHP que he visto) en tu sitio y ejecútalo.

    
respondido por el Mohamad Alhamoud 19.11.2010 - 12:59
fuente
0

Un atacante puede cargar códigos maliciosos que pueden interrumpir la autenticación o cargar un archivo .exe. Tales archivos cuando son abiertos por el otro usuario pueden causar problemas de seguridad importantes y causar el rendimiento del sistema.

    
respondido por el Irfan 19.01.2015 - 14:03
fuente
0

Desde el punto de vista de la seguridad: permitir que el usuario cargue cualquier tipo de archivo ejecutable sin una evaluación adecuada es un gran riesgo. La regla de oro será:

  • No coloque el contenido cargado por el usuario en una ubicación accesible para usuarios en el directorio web.
  • No permitir que el usuario cargue los archivos de configuración del servidor. (En algún caso, el usuario restringirá la carga de archivos php, pero aún así permite que se cargue .htaccess :))

He visto algún sitio que intenta no permitir que se cargue el script PHP y que permite que el SSI se cargue y se ejecute.

    
respondido por el kiran 19.01.2015 - 14:50
fuente

Lea otras preguntas en las etiquetas