Protección contra el complemento de datos de sabotaje

-1

Cuando se trata de cargar imágenes en un sitio web. Sé que puedes engañar al php para creer que el archivo es una imagen cambiando la extensión a ".jpg" desde ".php". Luego, una vez que se esté cargando el archivo, puede utilizar Datos de manipulación para volver a cambiar la extensión del archivo a ".php".
La única forma en que puedo pensar en prevenir esto es comparando hashs, pero no confío en este método.
¿Hay alguna forma de evitar que se manipulen los archivos durante el proceso de carga?

    
pregunta h4ck3r 06.07.2013 - 07:35
fuente

1 respuesta

2
  

Cuando digo comparaciones de hashes me refiero a que una vez que se seleccione el archivo, el servidor creará un hash y luego de que se cargue el archivo, creará otro hash del mismo archivo para ver si se ha manipulado.

En primer lugar, no puede confiar en nada del lado del cliente. Un usuario malintencionado podría crear una solicitud POST que simplemente envíe el hash y el archivo correctos. (Esto también se puede hacer con los datos de manipulación)

El hash protege solo contra la manipulación cuando el hash es más confiable que el archivo.

Para asegurar esto, enseñe cualquier secuencia de comandos que tenga en el backend para rechazar los ejecutables (mejor aún, permita solo desde un pequeño subconjunto de extensiones). Por lo tanto, solo puede verificar si el nombre de archivo recibido es de un tipo de imagen. Un atacante no puede falsificar eso sin tener acceso a su servidor.

Si desea más seguridad, puede validar que se trata de una imagen pasándola a través de alguna función de análisis de imágenes.

Tenga en cuenta que su servidor debe configurarse para que todas las cargas se almacenen de tal manera que no puedan ejecutarse (hacer que el directorio estético en Apache ayude parcialmente a esto, también debe protegerse contra la inclusión de archivos) .

    
respondido por el Manishearth 06.07.2013 - 11:11
fuente

Lea otras preguntas en las etiquetas