decir que permito a mis usuarios incrustar imágenes que otros pueden ver, luego el usuario vuelve a escribir la imagen como un archivo PHP, por ejemplo. ¿Eso supondría un riesgo para la seguridad de que él inyecte algo en mi código?
¿Eso supondría un riesgo para la seguridad de que él inyecte algo en mi código?
Sí
Si permite que sus usuarios carguen un archivo de imagen sin una validación 'robusta', es trivial para un atacante cargar un archivo PHP malicioso (por ejemplo, por fingiendo como una imagen a través del cambio del encabezado de solicitud de Tipo de Contenido) y ejecútelo en su servidor u obtenga un acceso remoto.
El manejo seguro de la carga de archivos no es fácil. Puede encontrar útil el artículo a continuación para saber más sobre sus riesgos y recomendaciones de seguridad:
No hay forma de que un usuario pueda "reescribir una imagen cargada para que sea un archivo php" porque los archivos php son reconocidos por su terminación .php no por su contenido.
Pero hay otros aspectos relacionados con la carga de imágenes que pueden ser explotados. Mostrar metadatos sin validarlos, por ejemplo, puede ser un riesgo de seguridad. Esto podría potencialmente permitir que un atacante cargue una imagen e inyecte el código analizado del lado del cliente en su sitio web modificando los metadatos.
Sí, es posible. Pero no solo xss. Puede llevar a la ejecución remota de comandos si la imagen se carga en su servidor. Para evitar esto, siempre vuelva a crear cualquier imagen cargada en archivos de imagen con nombre aleatorio.
Si permites incrustar imágenes de otros sitios web. Tienes que cuidar de xss en las entradas del usuario. De lo contrario no hay riesgos involucrados. Dado que el navegador no procesará JavaScript desde archivos de imagen, incluso si hay alguno
Lea otras preguntas en las etiquetas xss