Sé que mi pregunta ha sido respondida muchas veces, pero la mayoría de las respuestas aborda funciones que ni siquiera uso (como el uso incluye imágenes) y eso me preocupa porque tal vez no esté haciendo algo que no hago. debería estar haciendo.
Cuando estoy validando las imágenes, primero verifico el tamaño (2MB o menos) y luego verifico la extensión del archivo usando:
$Extension=explode('.',$Userfile);
if(!in_array(end($Extension),$Whitelist))
Donde $Whitelist
son las extensiones que permito (solo jpg, jpeg y png). Después, uso getImageSize
para verificar que realmente es una imagen y si se cumplen las 3 condiciones, creo un nuevo nombre para la imagen, agrego ".jpg" y luego lo guardo en una carpeta de imágenes (no lo hago). No sé si esto es importante, pero también creo una versión más pequeña de la imagen para mostrar en la página y si desea verla en tamaño completo, debe hacer clic en ella y ver la imagen original en una nueva pestaña).
Lo único que hago con estas imágenes es mostrarlas con img src="" en mi sitio web, nunca incluyo imágenes (en realidad ni siquiera sé por qué algunas personas hacen esto [sin criticar, estoy hablando en serio ]) o use las funciones fopen y similares y la carpeta de imágenes no puede ejecutar el código php.
¿Es eso suficiente para no ejecutar el código php incluido en las imágenes?
¿Es eso suficiente para no ejecutar algún código html / javascript en las imágenes? Porque no quiero un ataque XSS solo porque fui ingenuo con las imágenes y solo consideré a apache ejecutando el código php .
¿Debo hacer algo con las posibles imágenes con virus? Creo que la restricción de tamaño, agregar un nuevo nombre y siempre asegúrese de agregar .jpg al final del nuevo nombre, ayúdame a mitigar esto. , pero no estoy muy seguro.
Soy nuevo con contenido cargado y es por eso que me siento realmente paranoico por esto (y todo tipo de comentarios de usuarios ... es como estar dentro de una pirámide donde todo está maldito), así que apreciaré todas las respuestas .