Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: D4RIO en 31 Mayo 2011, 13:24 pm



Título: Permisos de descarga en servidores HTTP
Publicado por: D4RIO en 31 Mayo 2011, 13:24 pm
Hola gente,

Mi duda es la siguiente: Si tenemos un servicio X, donde un usuario tiene almacenado un archivo en nuestra web, ¿cómo controlamos que este usuario sea el único en poder descargar el fichero?

A este punto estoy suponiendo que no hubo autenticación HTTP, por ejemplo un webmail o un foro.

¿Cómo controlar que realmente SOLO USUARIOS tienen acceso real al archivo?

¿Cómo lo harían?


Título: Re: Permisos de descarga en servidores HTTP
Publicado por: el-brujo en 31 Mayo 2011, 19:05 pm
Instalar Apache + PHP + MySQL + Perl en Windows y Linux + Configuración Avanzada
http://foro.elhacker.net/tutoriales_documentacion/instalar_apache_php_mysql_perl_en_windows_y_linux_configuracion_avanzada-t251.0.html

Mira el apartado:
9) Autorización en Apache

Es una opción sencilla y simple, pero yo creo que no es la mejor.

Mejor algo más completo, en PHP y MySQL que valide el usuario antes de proceder a descargar un fichero. Algunos sitios, como SMF, pues codifican el nombre del fichero para "ocultarlo" y luego validan si es usuario o invitado.

Cualquier gestor de descargas tendrá esas opciones y muchas más.


Título: Re: Permisos de descarga en servidores HTTP
Publicado por: D4RIO en 31 Mayo 2011, 22:02 pm
Claro, a mi se me ocurrió que los archivos pueden estar en un lugar inaccesible hasta que se descarga. Ahi, si el usuario es válido, se copia a una carpeta con nombre determinado para la descarga (como un token), y ahi el usuario se lo descarga.

Ahora, si alguien sniffeando o como sea, obtiene el nombre de la carpeta, como NO hay autenticación HTTP de por medio, podrá igualmente descargar el archivo, a menos que haya otra configuración del server que lo limite.

Lo del usuario con htuser no me va porque es precisamente una autenticación HTTP. Lo de autorizar una IP o host por archivo de configuración, para darle acceso a un directorio, tampoco me va ya que en realidad, necesito restartear Apache para que me tome los cambios, y yo de repente quiero darle una descarga a una IP, y que nadie más pueda.

Habrá otro modo?? Tal vez una forma de modificar los permisos de Apache sobre un directorio en plena ejecución??