Foros del Web » Programando para Internet » ASP Clásico »

Impedir accesos a carpetas desde la barra de direcciones, según usuario conectado

Estas en el tema de Impedir accesos a carpetas desde la barra de direcciones, según usuario conectado en el foro de ASP Clásico en Foros del Web. Hola, pues estoy interesado precisamente en eso. Resulta que tendría una carpeta para cada usuario registrado, donde se guardarían ciertos ficheros. Y no quiero que ...
  #1 (permalink)  
Antiguo 15/08/2005, 13:12
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Impedir accesos a carpetas desde la barra de direcciones, según usuario conectado

Hola, pues estoy interesado precisamente en eso. Resulta que tendría una carpeta para cada usuario registrado, donde se guardarían ciertos ficheros. Y no quiero que se pueda acceder a esa carpeta (que sería a modo de links descargables) a menos que el usuario haya introducido previamente su login y contraseña.

Es decir, que habría distintas carpetas, a los archivos de las cuales no se tendría acceso escribiendo su ruta a menos que el usuario hubiera entrado registrado (en cuyo caso podría acceder únicamente a los archivos de su carpeta).

¿Cómo hago eso?
  #2 (permalink)  
Antiguo 15/08/2005, 15:56
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Y no te sirve mejor un simple FTP?

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 15/08/2005, 16:01
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Sí, si éste puede regirse por nombres de usuario y contraseña. No sé cómo se usaría.
  #4 (permalink)  
Antiguo 15/08/2005, 16:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si, hay muchos FTP server, de hecho el IIS viene con uno, tienes que agregarlo desde add/remove windows components, despues vas al IIS y das de alta tus usuarios, luego ingresarian con ftp://dominio_o_direccion_del_server y listo.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 15/08/2005, 18:50
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Ok, gracias. De todos modos, espero que esto pudiera integrarse plenamente en la aplicación web (y así, que el usuario pinchara en un link que le llevara a descargar directamente algo del ftp, o similar). Pero bueno, sé que por supuesto que se podrá integrar a la perfección (ftp y http deben de ser como primos hermanos. Más que eso, y sin metáforas, deben de ser protocolos hechos para convivir, sin pisarse).

La idea del ftp me parece bastante buena. De hecho, me imagino que es la manera "natural" de permitir la descarga de ficheros (file transfer protocol).

Saludos
  #6 (permalink)  
Antiguo 15/08/2005, 20:46
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
con poner en el href del enlace "ftp://direccion/fichero" ya lo tendrías
  #7 (permalink)  
Antiguo 16/08/2005, 07:08
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Cita:
Iniciado por trasgukabi
con poner en el href del enlace "ftp://direccion/fichero" ya lo tendrías
¿Y el usuario tendría que ingresar nuevamente nombre y contraseña? ¿O con el de haberse metido en la página valdría?
  #8 (permalink)  
Antiguo 16/08/2005, 10:12
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si te metes por IE al FTP, veras que la URL cambia, y le puedes enviar parametros, nunca lo he hecho pero me imagino que podrias integrarlo con un formulario.


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 16/08/2005, 11:02
Avatar de macedo  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 22 años, 4 meses
Puntos: 0
Hola u_goldman.

Yo he hecho algo parecido a lo que comentas. Te cuento como.

Cada usuario tiene una carpeta, pero fuera de la parte publica del servidor.

Cuando el usuario hace el login se genera una cadena aleatoria que se almacena en una variable de sesión y con ella se crea una carpeta publica (usa la cadena aleatoria como nombre de la carpeta) y se copia todo el contenido de la carpeta privada.

Cada vez que el usuario tiene que acceder a su carpeta se toma el nombre de la varible de sesion.

La pagina lleva un evento on close de tal modo que cuando se cierra llama a un asp que copia de nuevo todo el contenido público a la carpeta privada y borra la pública.

OJO, tienes que tener este evento en otro frame (oculto, por ejemplo) porque si no cada vez que pases de una pagina a otra, con un link por ejemplo, te borra la carpeta.


Alomejor es un poco enrevesado, pero es una idea
Yo lo he usado y funciona.

Saludos.
  #10 (permalink)  
Antiguo 16/08/2005, 11:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Hola macedo, interesante propuesta.

Sin embargo, esa copia de la carpeta se hace una sola vez y la haces dentro del sitio cierto?

Esto quiere decir que esa carpeta vivira alli por todo el tiempo que sea necesario, es decir, no se volvera a generar otra copia de esa carpeta, o en todo caso se sobreescribira, ahora una vez escrita en el sitio publico, como gestionas los contenidos?

Que pasa si la carpeta se ha generado y otro usuario sin estar logueado ingresa directamente a sus contenidos por URL?

La otra opcion que se me ocurre, es incorporar autentificacion con ADSI, para acceder a ciertas carpetas dentro del sitio. Aunque sigo pensando que con un FTP deberia ser suficiente, claro a reserva de que un_tio tambien pruebe lo de macedo

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 17/08/2005, 04:54
Avatar de macedo  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 22 años, 4 meses
Puntos: 0
Hola de nuevo u_goldman.

Como te contaba en el post anterior, cuando el usuario sale, se copia el contenido de la carpeta pública a la privada y se borra la primera, por lo que no queda colgando. Además, con un nombre aleatorio de 20 caracteres es bastante complicado que otro usuario "acierte" la URL.

Se puede dar ese caso si, por ejemplo, el ordenador del cliente se cuelga porque no se activaría el asp que se encarga de copiar y borrar cuando se cierra la ventana.

El caso es que tengo un sistema que (mediante una variable de aplicación) comprueba que usarios estan conectados y cuales son sus carpetas. En caso de que, pasado en timeout de session, la carpeta siga existiendo la borra.

Esto último es un poco mas complicado, pero funciona bien.

Saludos.
  #12 (permalink)  
Antiguo 29/08/2005, 14:53
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Gracias por las respuestas.
Cita:
Iniciado por macedo
El caso es que tengo un sistema que (mediante una variable de aplicación) comprueba que usarios estan conectados y cuales son sus carpetas. En caso de que, pasado en timeout de session, la carpeta siga existiendo la borra.

Esto último es un poco mas complicado, pero funciona bien.

Saludos.
¿Podrías ser más específico sobre el cómo lo haces?

U_goldman, he buscado lo que has dicho del ADSI y me parece que eso es la mejor solución.

Aquí pongo un sitio donde hablan de ello: http://www.microsoft.com/latam/techn.../200002/art08/

Tendría que ponerme a investigarlo a fondo (y aún tengo que aprender bien antes los FSO). Si alguien pudiera ponerme un script que tuviera ya hecho en el que copiara el contenido de una carpeta que ya tuviera, a otra carpeta temporal creada por ADSI (o mejor aún, que a una carpeta fija, a través de ADSI le diera permisos a un usuario (y sólo a él) para acceder al contenido de ella), se lo agradecería.

Saludos
  #13 (permalink)  
Antiguo 29/08/2005, 17:03
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 8 meses
Puntos: 4
yo creo que el problema de un_tio se puede solucionar con una o dos variables de sesión y que al momento de cargar la pagina, verifique si el nombre de la carpeta es igual al nombre del usuario (esto se lograría facil con un include).

Podría ser una solición simple si ya tiene su sitio programado y organiozado de esa manera.

espero que te sirva
__________________
by Capitán Buscapina
.
  #14 (permalink)  
Antiguo 29/08/2005, 19:18
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
acceder a ftp desde el navegador con clave es algo asi:
ftp://usuario:[email protected]

si es asi pues puedes poner los links con variables, aunque no se si sea muy seguro, ademas no se si venga al caso, no lei todos los post
  #15 (permalink)  
Antiguo 03/09/2005, 06:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Muchas gracias a los dos, ambos métodos son interesantes. Cap. Buscapina, me interesa mucho el tuyo, por la sencillez con que se hace y porque se corresponde más o menos a lo que yo quería hacer: pero detecto un problema, y es que, ¿cómo evitas que un usuario (suponiendo que sepa la dirección concreta) escriba un link directo a algún archivo que bajarse, pudiendo ser de la carpeta de otro usuario? No estamos hablando ya de evitar que le cargue la página, sino de evitar que se baje el archivo.
  #16 (permalink)  
Antiguo 03/09/2005, 17:22
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 8 meses
Puntos: 4
No hace mucho leí aquí mismo una solucion para eso.
La misma consistía en crear una carpeta para los archivos a bajar en la raiz del tu sitio.

No se cuan posible sea aplicar este consepto en tu desarrollo, pero podría ser una salida bastante elegante y segura (creo???)
__________________
by Capitán Buscapina
.
  #17 (permalink)  
Antiguo 04/09/2005, 08:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
¿Segura? Como dije:

Cita:
¿cómo evitas que un usuario (suponiendo que sepa la dirección concreta) escriba un link directo a algún archivo que bajarse, pudiendo ser de la carpeta de otro usuario?
Ten en cuenta que hay varios usuarios, y que quieres que cada uno sólo pueda acceder a lo que son sus archivos.

Saludos
  #18 (permalink)  
Antiguo 04/09/2005, 11:06
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 8 meses
Puntos: 4
pero si lo pones en la raiz.


cual sería la url para poder bajar dicho archivo???

pd: siempre y cuando tu servidor lo permita
__________________
by Capitán Buscapina
.

Última edición por Cap.Buscapina; 04/09/2005 a las 11:22
  #19 (permalink)  
Antiguo 05/09/2005, 21:23
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Cita:
Iniciado por Cap.Buscapina
pero si lo pones en la raiz.


cual sería la url para poder bajar dicho archivo???

pd: siempre y cuando tu servidor lo permita
Aah, ahora te he entendido. Con lo de raíz del sitio no te refieres a raíz del sitio web, sino en el disco duro c:, fuera del wwwRoot, ¿no? (no sé si dices esto, pero lo veo una buena idea).

Y si así lo hicieras, ¿cómo le pondrías links al usuario para que se bajara los archivos? ¿Los crearías dentro del sitio con FSO, y en cuanto se los bajase los borrarías (cómo se movería un archivo de una carpeta a otra)?
  #20 (permalink)  
Antiguo 06/09/2005, 09:45
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 8 meses
Puntos: 4
no, me refería a la raiz del sitio web.( no serviría de nada en la maquina cliente)

No se si todos los servicios de hosting ofrecen lo mismo, al menos en mi experiencia puedes crear carpetas con la misma gerarquía que la que contiene mi sitio.(reitero, nose si todos son iguales).

De esta forma no se podría hacer mediante url.


Por como poder bajarlos, hay por aquí algunos script para forsar la descarga de archivos.
__________________
by Capitán Buscapina
.
  #21 (permalink)  
Antiguo 12/10/2005, 20:25
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Al final lo del Capitán Buscapina no me quedó claro. Me parece que seguirían pudiendo bajarse los archivos con sólo escribirlos en la barra de direcciones.

¿La forma de crear una carpeta virtual no será la mejor? ¿Pero luego cómo haces que el servidor esté pendiente de borrarla? Habría que ponerle un temporizador o algo, y eso que comentó Macedo de usar variables de aplicación no me quedó del todo claro (nunca las he usado, de ellas lo único que sé es que se declaran como Application, y me imagino su uso cómo es, pero no sé ni si al apagar un ordenador éstas desaparecen (no creo) o cómo para el propósito de controlar qué carpetas borrar (se me ocurren formas, como hacer una comprobación cada vez que entre un nuevo usuario y compruebe las carpetas abiertas, entonces se borren si ha pasado más de 1 hora (guardando la fecha actual en una variable de aplicación), por ejemplo)), ¿alguien me dice cómo lo haría?

Última edición por un_tio; 12/10/2005 a las 20:30
  #22 (permalink)  
Antiguo 12/10/2005, 20:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Vuelvo y digo que dadas las circunstancias en mi opinion lo que te conviene es integar un manager con ADSI, en el cual le des privilegios a los usuarios sobre ciertas carpetas, que se encuentren fuera de la raiz de tu aplicacion y que solo sean accesibles mediante FTP.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #23 (permalink)  
Antiguo 12/10/2005, 20:41
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Hmm, ok, gracias. ¿Puedes precisarme mejor eso del manager con ADSI? Lo del FTP lo he entendido.

PD: ¡con lo fácil que parecía poner links directos!
  #24 (permalink)  
Antiguo 12/10/2005, 20:43
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
¿Ponerme a aprender ADSI no será muy complicado? Requiero algo que no me lleve mucho tiempo.

Ah, por cierto, he leído algo de ADSI y parece que es algo que se maneja desde Windows (un administrador de permisos). Lo digo porque lo ideal sería que lo hiciera automáticamente la página ASP, no que tuviera que haber uno yendo cliente a cliente asignándoles los permisos.
  #25 (permalink)  
Antiguo 14/10/2005, 16:41
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 8 meses
Puntos: 4
Cita:
¡con lo fácil que parecía poner links directos!
no se, tal vez es solo mi idea, pero no me parece tan dificil armar algo simple pero seguro.

supongo que en dicho sitio tendras alguna forma de logeo utilizando variables de sesiones, si a cada carpeta le asignas el nombre del usuario mas algun tipo de codigo transportado en una variable de sesion (o hasta una cadena al azar), sumado a que esté dicha carpeta en la raiz del sitio , creo que funcionaría.

no dudo que la solucion que plantea U_goldman tal ves sea la mas redondita, pero probando uno aprende. no???
__________________
by Capitán Buscapina
.
  #26 (permalink)  
Antiguo 14/10/2005, 17:04
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Cita:
Iniciado por Cap.Buscapina
no se, tal vez es solo mi idea, pero no me parece tan dificil armar algo simple pero seguro.

supongo que en dicho sitio tendras alguna forma de logeo utilizando variables de sesiones, si a cada carpeta le asignas el nombre del usuario mas algun tipo de codigo transportado en una variable de sesion (o hasta una cadena al azar), sumado a que esté dicha carpeta en la raiz del sitio , creo que funcionaría.

no dudo que la solucion que plantea U_goldman tal ves sea la mas redondita, pero probando uno aprende. no???
El problema que veo es que el cliente podría acceder directamente a dicha carpeta desde la barra de direcciones. Tú me has dicho que no, si está en la raíz del sitio, y yo ya te he dicho que no veo por qué. Se puede igualmente.

Es decir, si tu servidor se llama 'localhost' (ya sé que este nombre es sólo cuando está en tu propio ordenador, pero es un ejemplo), y el archivo "secreto" que sólo quieres que algunos usuarios registrados se bajen es imagen.gif, se lo podrán bajar poniendo http://localhost/imagen.gif o poniendo http://localhost/carpeta_rara/imagen.gif en caso de que lo pongas en una carpeta.
  #27 (permalink)  
Antiguo 15/10/2005, 09:48
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 8 meses
Puntos: 4
si, mi estimado amigo, pero

1- vos no deberías poner lincks a archivos, sino a una pagina asp general que fuerse la descarga.
2- supongo que esos archivos lo sube el usuario, pues entonses cuando los sube,agregale a su nombre alguna clave: si es imagen.gif entonses será xwpqrssimagen.gif, y al momento de mostrar en un "administrador de archovos"(o algo por el estilo) solo reemplazas dicha clave.
3-esa clave solo vos la conoses por lo que si se pone una url en el navegador , esa imagen no existe.
4- ademas utilizando variables de sesion ningun usuario distinto a su carpeta debería poder verla (sería moy obvio que yo tenga una carpeta cap_buscapina, entonces haces el mismo tratamiento que en el punto 2).

voy a ver si preparo algo simple para postearlo.
__________________
by Capitán Buscapina
.

Última edición por Cap.Buscapina; 15/10/2005 a las 09:53
  #28 (permalink)  
Antiguo 21/10/2005, 21:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Si posteaste algo avísame. Sí, dices cosas muy interesantes, pero no me queda claro lo siguiente:

1- ¿Cómo se hace eso? No entiendo.

2-Parece una buena idea. Estás diciendo que el nombre con el que se baje los archivos sea distinto al nombre con el que esté guardado, ¡genial! ¿Eso se puede hacer sin problemas, es decir, que le pongas un link a un archivo para que se lo descargue y él vea un nombre distinto del que tenga el archivo? Aclárame esto por favor, porque aún no controlo FSO y no sé si estás usándolo a la hora de permitir la descarga.

4-Variables de sesión y carpetas... Supongo que dices de que haya una página asp, que mediante fso, te busca la carpeta y los archivos, y si el usuario no está registrado lo devuelves para atrás y no puede ver nada, ¿no?
  #29 (permalink)  
Antiguo 22/10/2005, 08:27
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 8 meses
Puntos: 4
hola, hace algunos dias te mande un MP para que me dieras un mail donde enviarte unos archivos de ejemplos (ya que no tengo habilitada la posibilidad de subir archivos al foro).


saludos
__________________
by Capitán Buscapina
.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:33.