Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/05/2005, 09:36
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
He pensado como solución mirar el mime-type del fichero subido por PUT, y si es PHP desecharlo, pero claro, son muchas las extensiones posibles, y no sé si cambiando la extensión podrían engañarme y luego Apache ejecutar dicho código como si fuera PHP (esto creo que no es posible, pero no me ofrece mucha confianza esta solución).
Justamente .. el formato MIME de un archivo no se obtiene de la extensión del mismo sino de las cabeceras del archivo en sí .. Por eso es más seguro ver el formato MIME de un archivo que no verlo por la extensión del archivo.

Cita:
Por otra parte, me gustaría saber cómo hacen muchas páginas para permitir descargas de ficheros sólo con autorización, es decir, ¿dónde guardan esos ficheros de tal forma que no se puede acceder vía web? ¿Cómo accede entonces PHP a ellos para ofrecerlos en descarga? De esto último he buscado información pero no encuentro. ¿Alguna idea para saber por dónde empezar a buscar y aprender?
Coloca tus archivos fuera del alcance de tu "DocumentRoot" (de Apache), de esta forma tus archivos no quedaran disponibles para llamarlos por un: http://www.tusitio.tal/archivo.tal .. Vía PHP crea scripts que accedan a tus archivos para entregarlos al buffer de salida (para su descarga) .. Esto lo puedes implementar con:

header() (componiendo las cabeceras HTTP adecuadas para forzar la descarga)
y
readfile() (para leer tu archivo desde la ruta absoluta que esté el archivo hacia el buffer de salida de PHP)

Ejemplos tienes en la documentación oficial de PHP y en las FAQ de este foro ..

Un saludo,