Re: Problema de seguridad (seguimos...)

22/06/2005 - 16:28 por Karmico | Informe spam
Hola de nuevo,

"Creo que la solución pasa por sacar las carpetas de usuario fuera de la
raíz del servidor web."
me quedé con la solución de Miguel de dejar fuera del directorio web las
carpetas de los archivos.

Respecto a los ficheros, no hay problema me ha funcionado muy bien.

Ahora el tema está en mostrar las imagenes en la web, que sí no se
autentificaron por ASP no podrán ver, pero como puedo mostrarlas cuando
tenga que mostrarlas sí estan bajo la raíz de la web?

Gracias Miguel por todo y a cualquiera que me pueda ayudar,

Saludos

"Miguel Gonzalez" <nomail@noname.no> escribió en el mensaje
news:uIRdCsecFHA.2736@TK2MSFTNGP12.phx.gbl...
Hola Karmico.

El IIS por sí solo no permite crear o gestionar usuarios. Todo lo más,
permite indicar la cuenta del
usuario de acceso anónimo y activar la autenticación integrada con los
usuarios del dominio Windows.
En ese caso, deberías activar dicha autenticación, crear cuentas para todos
los usuarios que tengan
acceso al servidor, bien desde el administrador de usuarios (WinNt), bien
desde el Directorio Activo
(Win2000 Server, o Win2003 Server). Luego, desde el explorador de archivos,
cabe asignar a los
directorios y archivos los permisos de usuario y nivel de acceso
correspondientes. El único problema
es que para ello tienes que tener control del servidor web. Si no lo tienes,
entonces sólo cabe
montar un sistema como el que te sugería en el enlace de asptutor.com

Saludos!
Miguel


Karmico escribió:

Gracias Miguel! Me está sirviendo de mucho tu ayuda.

respecto a la cuestión 2, no es eso lo que queria, me refiero a que por
ejemplo yo en IIS creara un usuario generico con permisos para esas
carpetas.

Entonces, cuando me logee correctamente por script el usuario,
autentificarlo en IIS como ese usuario genérico, para que pueda tomar esos
permisos.

Alguna idea?? Gracias a todos!


"Miguel Gonzalez" <noname@nomail.no> escribió en el mensaje
news:#y6s49ccFHA.2840@TK2MSFTNGP14.phx.gbl...
Hola Karmico.

Sobre la cuestion 1:

el enlace al archivo contendría una referencia del tipo:

http://www.tuserver.com/archivo.asp?id#

...Y la página ASP buscaría el archivo de referencia "23" para servirlo
al usuario (previa comprobación de los derechos de acceso).

Para ello necesitas algún tipo de sistema que almacene los datos de los
archivos subidos, su ubicación y los usuarios que pueden consultarlos.
Por ejemplo, en una(s) tabla(s).

El esquema de directorios sería algo así (todo lo que está en la
carpeta_usuarios es invisible desde internet a no ser que pase por la
página "archivo.asp"):

carpeta_usuarios
carpeta_user_1
archivo23.txt
carpeta_user_2
carpeta_user_n

carpeta_rootweb
archivo.asp

La direccion "http://www.tuserver.com" apunta directamente a
"carpeta_rootweb".

Sobre la cuestion 2, puedes consultar este ejemplo sencillo:

http://www.asptutor.com/asp/vart.asp?idP

Saludos!
Miguel


Karmico escribió:


Uhmm Gracias Miguel, pero sí los usuarios quieren descargar un fichero de
esa carpeta, como se linkaria??

www.raizdelcliente.com apuntaria a mi
c:/inetpub/wwwroot/clientes/raizdelcliente

en raiz del cliente tendriamos

usuarios/nombredeusuario/archivo.txt

enlazo así

www.raizdelcliente.com/usuarios/nombredeusuario/archivo.txt

donde debería de enlazar?

Cuestion 2º.

Existe algún tipo de archivo de autenticación que podría crear



dinamicamente


con un usuario y clave que autentifique en el servidor en cada carpeta?
Saben algo sobre permisos de usuarios gestionados dinamicamente por ASP?

Gracias a todos!





no lo
"Miguel Gonzalez" <nomail@noname.no> escribió en el mensaje
news:uVW7koZcFHA.220@TK2MSFTNGP12.phx.gbl...
Hola Karmico.

Creo que la solución pasa por sacar las carpetas de usuario fuera de la



raíz


del servidor web.

Las operaciones de escritura y lectura de los archivos contenidos en



dichas


carpetas cabe
realizarlas mediante una página en ASP que sirva de intermediaria y que
valide si el usuario tiene
derecho a dejar o leer los archivos.

Para acceder desde ASP a las carpetas fuera de la raíz cabe utilizar
"Server.MapPath()".

Saludos!
Miguel

Karmico escribió:



Hola a todos,

Estoy terminando una aplicación web donde usuarios unicamente por scripts
asp, tienen acceso a su carpeta en el servidor, donde pueden guardar
ficheros, etc etc
Pero tengo un problema, sí alguien con un webcopier analizara la web,



podría



extraer el contenido de cada carpeta de usuario del servidor y
descargarla

Se les ocurre alguna idea para solventar este problema de seguridad?
Gracias.











Preguntas similare

Leer las respuestas

#1 Miguel Gonzalez
22/06/2005 - 16:51 | Informe spam
Hola Karmico.

Perdona, pero no acabo de entender el problema...

Si las imágenes están en un directorio bajo la raiz del sitio web
bastaría con indicarlo así en el "src" del elemento <img>:

<img src="imagenes/myimage.gif">

Estas imágenes sería visibles para todos los visitantes de la web.

Ahora bien, si lo que quieres es restringir el acceso libre a las
imágenes tendrás que operar de forma parecida a como hiciste con los
archivos: situarlas en una carpeta fuera de la raíz de la web y
servirlas dinámicamente mediante una rutina ASP que compruebe los
derechos de acceso del usuario, seleccione la imagen del servidor y la
envíe al usuario.

Ten en cuenta que esta práctica puede llegar a consumir muchos recursos
del servidor, por lo que sólo se recomendaría su uso para determinadas
imágenes cuyo acceso no debiera ser público.

Si no es esto, intenta explicarlo de nuevo, a ver si no estoy tan
espeso... :-o

Saludos!
Miguel




Si n

Karmico escribió:
Hola de nuevo,

"Creo que la solución pasa por sacar las carpetas de usuario fuera de la
raíz del servidor web."
me quedé con la solución de Miguel de dejar fuera del directorio web las
carpetas de los archivos.

Respecto a los ficheros, no hay problema me ha funcionado muy bien.

Ahora el tema está en mostrar las imagenes en la web, que sí no se
autentificaron por ASP no podrán ver, pero como puedo mostrarlas cuando
tenga que mostrarlas sí estan bajo la raíz de la web?

Gracias Miguel por todo y a cualquiera que me pueda ayudar,

Saludos

"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

El IIS por sí solo no permite crear o gestionar usuarios. Todo lo más,
permite indicar la cuenta del
usuario de acceso anónimo y activar la autenticación integrada con los
usuarios del dominio Windows.
En ese caso, deberías activar dicha autenticación, crear cuentas para todos
los usuarios que tengan
acceso al servidor, bien desde el administrador de usuarios (WinNt), bien
desde el Directorio Activo
(Win2000 Server, o Win2003 Server). Luego, desde el explorador de archivos,
cabe asignar a los
directorios y archivos los permisos de usuario y nivel de acceso
correspondientes. El único problema
es que para ello tienes que tener control del servidor web. Si no lo tienes,
entonces sólo cabe
montar un sistema como el que te sugería en el enlace de asptutor.com

Saludos!
Miguel


Karmico escribió:

Gracias Miguel! Me está sirviendo de mucho tu ayuda.

respecto a la cuestión 2, no es eso lo que queria, me refiero a que por
ejemplo yo en IIS creara un usuario generico con permisos para esas
carpetas.

Entonces, cuando me logee correctamente por script el usuario,
autentificarlo en IIS como ese usuario genérico, para que pueda tomar esos
permisos.

Alguna idea?? Gracias a todos!


"Miguel Gonzalez" escribió en el mensaje
news:#
Hola Karmico.

Sobre la cuestion 1:

el enlace al archivo contendría una referencia del tipo:

http://www.tuserver.com/archivo.asp?id#

...Y la página ASP buscaría el archivo de referencia "23" para servirlo
al usuario (previa comprobación de los derechos de acceso).

Para ello necesitas algún tipo de sistema que almacene los datos de los
archivos subidos, su ubicación y los usuarios que pueden consultarlos.
Por ejemplo, en una(s) tabla(s).

El esquema de directorios sería algo así (todo lo que está en la
carpeta_usuarios es invisible desde internet a no ser que pase por la
página "archivo.asp"):

carpeta_usuarios
carpeta_user_1
archivo23.txt
carpeta_user_2
carpeta_user_n

carpeta_rootweb
archivo.asp

La direccion "http://www.tuserver.com" apunta directamente a
"carpeta_rootweb".

Sobre la cuestion 2, puedes consultar este ejemplo sencillo:

http://www.asptutor.com/asp/vart.asp?idP

Saludos!
Miguel


Karmico escribió:


Uhmm Gracias Miguel, pero sí los usuarios quieren descargar un fichero de
esa carpeta, como se linkaria??

www.raizdelcliente.com apuntaria a mi
c:/inetpub/wwwroot/clientes/raizdelcliente

en raiz del cliente tendriamos

usuarios/nombredeusuario/archivo.txt

enlazo así

www.raizdelcliente.com/usuarios/nombredeusuario/archivo.txt

donde debería de enlazar?

Cuestion 2º.

Existe algún tipo de archivo de autenticación que podría crear



dinamicamente


con un usuario y clave que autentifique en el servidor en cada carpeta?
Saben algo sobre permisos de usuarios gestionados dinamicamente por ASP?

Gracias a todos!





no lo
"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Creo que la solución pasa por sacar las carpetas de usuario fuera de la



raíz


del servidor web.

Las operaciones de escritura y lectura de los archivos contenidos en



dichas


carpetas cabe
realizarlas mediante una página en ASP que sirva de intermediaria y que
valide si el usuario tiene
derecho a dejar o leer los archivos.

Para acceder desde ASP a las carpetas fuera de la raíz cabe utilizar
"Server.MapPath()".

Saludos!
Miguel

Karmico escribió:



Hola a todos,

Estoy terminando una aplicación web donde usuarios unicamente por scripts
asp, tienen acceso a su carpeta en el servidor, donde pueden guardar
ficheros, etc etc
Pero tengo un problema, sí alguien con un webcopier analizara la web,



podría



extraer el contenido de cada carpeta de usuario del servidor y
descargarla

Se les ocurre alguna idea para solventar este problema de seguridad?
Gracias.















Respuesta Responder a este mensaje
#2 Karmico
22/06/2005 - 17:16 | Informe spam
Hola Miguel!
Veamos como te he dicho, con los ficheros me va la solución
perfectamente.
Pero además, ahi imágenes que los usuarios no autentificados por asp (es
decir que no han echo LOGIN en un script orquestado por mi) no tendrían que
ver.

mi web está en el servidor asi

la carpeta es la raíz del web www.web.com apuntaría ahi
c:\servidor\web\clientes\cliente\web

puse las carpetas abajo, fuera del raiz, así
c:\servidor\web\clientes\cliente\datosprivados

y de esa manera, accedo a los archivos a traves de un asp que me da permisos
para descargarlo o no... hasta ahi todo bien.

Que pasa? que en "datosprivados" tambien tengo imágenes jpg y gif.

Entonces... sí yo en www.web.com (c:\servidor\web\clientes\cliente\web)
quiero mostrar en un area donde se han autentificado, una imagen que está en
c:\servidor\web\clientes\cliente\datosprivados como la linko?

www.web.com/../datosprivados/imagen.jpg no sería correcto verdad?

No se si me entiendes y no se sí tiene solucion esto gracias por tu
ayuda!




"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Perdona, pero no acabo de entender el problema...

Si las imágenes están en un directorio bajo la raiz del sitio web
bastaría con indicarlo así en el "src" del elemento <img>:

<img src="imagenes/myimage.gif">

Estas imágenes sería visibles para todos los visitantes de la web.

Ahora bien, si lo que quieres es restringir el acceso libre a las
imágenes tendrás que operar de forma parecida a como hiciste con los
archivos: situarlas en una carpeta fuera de la raíz de la web y
servirlas dinámicamente mediante una rutina ASP que compruebe los
derechos de acceso del usuario, seleccione la imagen del servidor y la
envíe al usuario.

Ten en cuenta que esta práctica puede llegar a consumir muchos recursos
del servidor, por lo que sólo se recomendaría su uso para determinadas
imágenes cuyo acceso no debiera ser público.

Si no es esto, intenta explicarlo de nuevo, a ver si no estoy tan
espeso... :-o

Saludos!
Miguel




Si n

Karmico escribió:
Hola de nuevo,

"Creo que la solución pasa por sacar las carpetas de usuario fuera de la
raíz del servidor web."
me quedé con la solución de Miguel de dejar fuera del directorio web las
carpetas de los archivos.

Respecto a los ficheros, no hay problema me ha funcionado muy bien.

Ahora el tema está en mostrar las imagenes en la web, que sí no se
autentificaron por ASP no podrán ver, pero como puedo mostrarlas cuando
tenga que mostrarlas sí estan bajo la raíz de la web?

Gracias Miguel por todo y a cualquiera que me pueda ayudar,

Saludos

"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

El IIS por sí solo no permite crear o gestionar usuarios. Todo lo más,
permite indicar la cuenta del
usuario de acceso anónimo y activar la autenticación integrada con los
usuarios del dominio Windows.
En ese caso, deberías activar dicha autenticación, crear cuentas para


todos
los usuarios que tengan
acceso al servidor, bien desde el administrador de usuarios (WinNt), bien
desde el Directorio Activo
(Win2000 Server, o Win2003 Server). Luego, desde el explorador de


archivos,
cabe asignar a los
directorios y archivos los permisos de usuario y nivel de acceso
correspondientes. El único problema
es que para ello tienes que tener control del servidor web. Si no lo


tienes,
entonces sólo cabe
montar un sistema como el que te sugería en el enlace de asptutor.com

Saludos!
Miguel


Karmico escribió:

Gracias Miguel! Me está sirviendo de mucho tu ayuda.

respecto a la cuestión 2, no es eso lo que queria, me refiero a que por
ejemplo yo en IIS creara un usuario generico con permisos para esas
carpetas.

Entonces, cuando me logee correctamente por script el usuario,
autentificarlo en IIS como ese usuario genérico, para que pueda tomar esos
permisos.

Alguna idea?? Gracias a todos!


"Miguel Gonzalez" escribió en el mensaje
news:#
Hola Karmico.

Sobre la cuestion 1:

el enlace al archivo contendría una referencia del tipo:

http://www.tuserver.com/archivo.asp?id#

...Y la página ASP buscaría el archivo de referencia "23" para servirlo
al usuario (previa comprobación de los derechos de acceso).

Para ello necesitas algún tipo de sistema que almacene los datos de los
archivos subidos, su ubicación y los usuarios que pueden consultarlos.
Por ejemplo, en una(s) tabla(s).

El esquema de directorios sería algo así (todo lo que está en la
carpeta_usuarios es invisible desde internet a no ser que pase por la
página "archivo.asp"):

carpeta_usuarios
carpeta_user_1
archivo23.txt
carpeta_user_2
carpeta_user_n

carpeta_rootweb
archivo.asp

La direccion "http://www.tuserver.com" apunta directamente a
"carpeta_rootweb".

Sobre la cuestion 2, puedes consultar este ejemplo sencillo:

http://www.asptutor.com/asp/vart.asp?idP

Saludos!
Miguel


Karmico escribió:


Uhmm Gracias Miguel, pero sí los usuarios quieren descargar un fichero de
esa carpeta, como se linkaria??

www.raizdelcliente.com apuntaria a mi
c:/inetpub/wwwroot/clientes/raizdelcliente

en raiz del cliente tendriamos

usuarios/nombredeusuario/archivo.txt

enlazo así

www.raizdelcliente.com/usuarios/nombredeusuario/archivo.txt

donde debería de enlazar?

Cuestion 2º.

Existe algún tipo de archivo de autenticación que podría crear



dinamicamente


con un usuario y clave que autentifique en el servidor en cada carpeta?
Saben algo sobre permisos de usuarios gestionados dinamicamente por ASP?

Gracias a todos!





no lo
"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Creo que la solución pasa por sacar las carpetas de usuario fuera de la



raíz


del servidor web.

Las operaciones de escritura y lectura de los archivos contenidos en



dichas


carpetas cabe
realizarlas mediante una página en ASP que sirva de intermediaria y que
valide si el usuario tiene
derecho a dejar o leer los archivos.

Para acceder desde ASP a las carpetas fuera de la raíz cabe utilizar
"Server.MapPath()".

Saludos!
Miguel

Karmico escribió:



Hola a todos,

Estoy terminando una aplicación web donde usuarios unicamente por








scripts
asp, tienen acceso a su carpeta en el servidor, donde pueden guardar
ficheros, etc etc
Pero tengo un problema, sí alguien con un webcopier analizara la web,



podría



extraer el contenido de cada carpeta de usuario del servidor y
descargarla

Se les ocurre alguna idea para solventar este problema de seguridad?
Gracias.















Respuesta Responder a este mensaje
#3 Miguel Gonzalez
22/06/2005 - 19:05 | Informe spam
Hola Karmico.

Desde mi punto de vista, la "cosa" funcionaría de forma parecida a como
gestionas los archivos.

El enlace a la imagen sería a una página intermedia ASP:

<img src="imagen.asp?img=nombreimagen&ext=extension">

...a la que se pasarían los parámetros con el nombre de la imagen a
mostrar: en el parámetro "img" se pasa el nombre de la imagen y en el
parámetro "ext" la extensión de dicha imagen (por ejemplo, para la
imagen "coche.gif" nos quedaría "img=coche&ext=gif").

La página imagen.asp verificaría los permisos del usuario y serviría la
imagen pedida de esta manera:

<%
Dim objStream, FSOPath, marca, imagen, typeRecurso
Set objStream = Server.CreateObject("ADODB.Stream")
FSOPath = Server.MapPath("\")
marca = InStrRev(FSOPath, "\")
imagen = Request.QueryString("img") & "." &_
Request.QueryString("ext")
FSOPath = Left(FSOPath, marca) & "datosprivados\" & imagen
objStream.Open
objStream.Type = 1
objStream.LoadFromFile FSOPath
Select Case Request.QueryString("ext")
Case "gif": typeRecurso = "image/gif"
Case "jpg": typeRecurso = "image/jpeg"
Case "jpeg": typeRecurso = "image/jpeg"
Case "png": typeRecurso = "image/x-png"
End Select
Response.ContentType = typeRecurso
Response.BinaryWrite objStream.Read
Response.Flush
objStream.Close
Set objStream = Nothing
%>

Saludos!
Miguel


Karmico escribió:
Hola Miguel!
Veamos como te he dicho, con los ficheros me va la solución
perfectamente.
Pero además, ahi imágenes que los usuarios no autentificados por asp (es
decir que no han echo LOGIN en un script orquestado por mi) no tendrían que
ver.

mi web está en el servidor asi

la carpeta es la raíz del web www.web.com apuntaría ahi
c:\servidor\web\clientes\cliente\web

puse las carpetas abajo, fuera del raiz, así
c:\servidor\web\clientes\cliente\datosprivados

y de esa manera, accedo a los archivos a traves de un asp que me da permisos
para descargarlo o no... hasta ahi todo bien.

Que pasa? que en "datosprivados" tambien tengo imágenes jpg y gif.

Entonces... sí yo en www.web.com (c:\servidor\web\clientes\cliente\web)
quiero mostrar en un area donde se han autentificado, una imagen que está en
c:\servidor\web\clientes\cliente\datosprivados como la linko?

www.web.com/../datosprivados/imagen.jpg no sería correcto verdad?

No se si me entiendes y no se sí tiene solucion esto gracias por tu
ayuda!




"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Perdona, pero no acabo de entender el problema...

Si las imágenes están en un directorio bajo la raiz del sitio web
bastaría con indicarlo así en el "src" del elemento <img>:

<img src="imagenes/myimage.gif">

Estas imágenes sería visibles para todos los visitantes de la web.

Ahora bien, si lo que quieres es restringir el acceso libre a las
imágenes tendrás que operar de forma parecida a como hiciste con los
archivos: situarlas en una carpeta fuera de la raíz de la web y
servirlas dinámicamente mediante una rutina ASP que compruebe los
derechos de acceso del usuario, seleccione la imagen del servidor y la
envíe al usuario.

Ten en cuenta que esta práctica puede llegar a consumir muchos recursos
del servidor, por lo que sólo se recomendaría su uso para determinadas
imágenes cuyo acceso no debiera ser público.

Si no es esto, intenta explicarlo de nuevo, a ver si no estoy tan
espeso... :-o

Saludos!
Miguel




Si n

Karmico escribió:

Hola de nuevo,

"Creo que la solución pasa por sacar las carpetas de usuario fuera de la
raíz del servidor web."
me quedé con la solución de Miguel de dejar fuera del directorio web las
carpetas de los archivos.

Respecto a los ficheros, no hay problema me ha funcionado muy bien.

Ahora el tema está en mostrar las imagenes en la web, que sí no se
autentificaron por ASP no podrán ver, pero como puedo mostrarlas cuando
tenga que mostrarlas sí estan bajo la raíz de la web?

Gracias Miguel por todo y a cualquiera que me pueda ayudar,

Saludos

"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

El IIS por sí solo no permite crear o gestionar usuarios. Todo lo más,
permite indicar la cuenta del
usuario de acceso anónimo y activar la autenticación integrada con los
usuarios del dominio Windows.
En ese caso, deberías activar dicha autenticación, crear cuentas para



todos

los usuarios que tengan
acceso al servidor, bien desde el administrador de usuarios (WinNt), bien
desde el Directorio Activo
(Win2000 Server, o Win2003 Server). Luego, desde el explorador de



archivos,

cabe asignar a los
directorios y archivos los permisos de usuario y nivel de acceso
correspondientes. El único problema
es que para ello tienes que tener control del servidor web. Si no lo



tienes,

entonces sólo cabe
montar un sistema como el que te sugería en el enlace de asptutor.com

Saludos!
Miguel


Karmico escribió:


Gracias Miguel! Me está sirviendo de mucho tu ayuda.

respecto a la cuestión 2, no es eso lo que queria, me refiero a que por
ejemplo yo en IIS creara un usuario generico con permisos para esas
carpetas.

Entonces, cuando me logee correctamente por script el usuario,
autentificarlo en IIS como ese usuario genérico, para que pueda tomar esos
permisos.

Alguna idea?? Gracias a todos!


"Miguel Gonzalez" escribió en el mensaje
news:#
Hola Karmico.

Sobre la cuestion 1:

el enlace al archivo contendría una referencia del tipo:

http://www.tuserver.com/archivo.asp?id#

...Y la página ASP buscaría el archivo de referencia "23" para servirlo
al usuario (previa comprobación de los derechos de acceso).

Para ello necesitas algún tipo de sistema que almacene los datos de los
archivos subidos, su ubicación y los usuarios que pueden consultarlos.
Por ejemplo, en una(s) tabla(s).

El esquema de directorios sería algo así (todo lo que está en la
carpeta_usuarios es invisible desde internet a no ser que pase por la
página "archivo.asp"):

carpeta_usuarios
carpeta_user_1
archivo23.txt
carpeta_user_2
carpeta_user_n

carpeta_rootweb
archivo.asp

La direccion "http://www.tuserver.com" apunta directamente a
"carpeta_rootweb".

Sobre la cuestion 2, puedes consultar este ejemplo sencillo:

http://www.asptutor.com/asp/vart.asp?idP

Saludos!
Miguel


Karmico escribió:



Uhmm Gracias Miguel, pero sí los usuarios quieren descargar un fichero de
esa carpeta, como se linkaria??

www.raizdelcliente.com apuntaria a mi
c:/inetpub/wwwroot/clientes/raizdelcliente

en raiz del cliente tendriamos

usuarios/nombredeusuario/archivo.txt

enlazo así

www.raizdelcliente.com/usuarios/nombredeusuario/archivo.txt

donde debería de enlazar?

Cuestion 2º.

Existe algún tipo de archivo de autenticación que podría crear



dinamicamente



con un usuario y clave que autentifique en el servidor en cada carpeta?
Saben algo sobre permisos de usuarios gestionados dinamicamente por ASP?

Gracias a todos!





no lo
"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Creo que la solución pasa por sacar las carpetas de usuario fuera de la



raíz



del servidor web.

Las operaciones de escritura y lectura de los archivos contenidos en



dichas



carpetas cabe
realizarlas mediante una página en ASP que sirva de intermediaria y que
valide si el usuario tiene
derecho a dejar o leer los archivos.

Para acceder desde ASP a las carpetas fuera de la raíz cabe utilizar
"Server.MapPath()".

Saludos!
Miguel

Karmico escribió:




Hola a todos,

Estoy terminando una aplicación web donde usuarios unicamente por









scripts

asp, tienen acceso a su carpeta en el servidor, donde pueden guardar
ficheros, etc etc
Pero tengo un problema, sí alguien con un webcopier analizara la web,



podría




extraer el contenido de cada carpeta de usuario del servidor y
descargarla

Se les ocurre alguna idea para solventar este problema de seguridad?
Gracias.

















Respuesta Responder a este mensaje
#4 Karmico
23/06/2005 - 10:35 | Informe spam
MUCHAS GRACIAS ME FUNCIONAAAAAAAA!!!!!!!!!!
lo que ha costao!!!

Gracias Miguel.

"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Desde mi punto de vista, la "cosa" funcionaría de forma parecida a como
gestionas los archivos.

El enlace a la imagen sería a una página intermedia ASP:

<img src="imagen.asp?img=nombreimagen&ext=extension">

...a la que se pasarían los parámetros con el nombre de la imagen a
mostrar: en el parámetro "img" se pasa el nombre de la imagen y en el
parámetro "ext" la extensión de dicha imagen (por ejemplo, para la
imagen "coche.gif" nos quedaría "img=coche&ext=gif").

La página imagen.asp verificaría los permisos del usuario y serviría la
imagen pedida de esta manera:

<%
Dim objStream, FSOPath, marca, imagen, typeRecurso
Set objStream = Server.CreateObject("ADODB.Stream")
FSOPath = Server.MapPath("\")
marca = InStrRev(FSOPath, "\")
imagen = Request.QueryString("img") & "." &_
Request.QueryString("ext")
FSOPath = Left(FSOPath, marca) & "datosprivados\" & imagen
objStream.Open
objStream.Type = 1
objStream.LoadFromFile FSOPath
Select Case Request.QueryString("ext")
Case "gif": typeRecurso = "image/gif"
Case "jpg": typeRecurso = "image/jpeg"
Case "jpeg": typeRecurso = "image/jpeg"
Case "png": typeRecurso = "image/x-png"
End Select
Response.ContentType = typeRecurso
Response.BinaryWrite objStream.Read
Response.Flush
objStream.Close
Set objStream = Nothing
%>

Saludos!
Miguel


Karmico escribió:
Hola Miguel!
Veamos como te he dicho, con los ficheros me va la solución
perfectamente.
Pero además, ahi imágenes que los usuarios no autentificados por asp (es
decir que no han echo LOGIN en un script orquestado por mi) no tendrían


que
ver.

mi web está en el servidor asi

la carpeta es la raíz del web www.web.com apuntaría ahi
c:\servidor\web\clientes\cliente\web

puse las carpetas abajo, fuera del raiz, así
c:\servidor\web\clientes\cliente\datosprivados

y de esa manera, accedo a los archivos a traves de un asp que me da


permisos
para descargarlo o no... hasta ahi todo bien.

Que pasa? que en "datosprivados" tambien tengo imágenes jpg y gif.

Entonces... sí yo en www.web.com (c:\servidor\web\clientes\cliente\web)
quiero mostrar en un area donde se han autentificado, una imagen que está


en
c:\servidor\web\clientes\cliente\datosprivados como la linko?

www.web.com/../datosprivados/imagen.jpg no sería correcto verdad?

No se si me entiendes y no se sí tiene solucion esto gracias por


tu
ayuda!




"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Perdona, pero no acabo de entender el problema...

Si las imágenes están en un directorio bajo la raiz del sitio web
bastaría con indicarlo así en el "src" del elemento <img>:

<img src="imagenes/myimage.gif">

Estas imágenes sería visibles para todos los visitantes de la web.

Ahora bien, si lo que quieres es restringir el acceso libre a las
imágenes tendrás que operar de forma parecida a como hiciste con los
archivos: situarlas en una carpeta fuera de la raíz de la web y
servirlas dinámicamente mediante una rutina ASP que compruebe los
derechos de acceso del usuario, seleccione la imagen del servidor y la
envíe al usuario.

Ten en cuenta que esta práctica puede llegar a consumir muchos recursos
del servidor, por lo que sólo se recomendaría su uso para determinadas
imágenes cuyo acceso no debiera ser público.

Si no es esto, intenta explicarlo de nuevo, a ver si no estoy tan
espeso... :-o

Saludos!
Miguel




Si n

Karmico escribió:

Hola de nuevo,

"Creo que la solución pasa por sacar las carpetas de usuario fuera de la
raíz del servidor web."
me quedé con la solución de Miguel de dejar fuera del directorio web las
carpetas de los archivos.

Respecto a los ficheros, no hay problema me ha funcionado muy bien.

Ahora el tema está en mostrar las imagenes en la web, que sí no se
autentificaron por ASP no podrán ver, pero como puedo mostrarlas cuando
tenga que mostrarlas sí estan bajo la raíz de la web?

Gracias Miguel por todo y a cualquiera que me pueda ayudar,

Saludos

"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

El IIS por sí solo no permite crear o gestionar usuarios. Todo lo más,
permite indicar la cuenta del
usuario de acceso anónimo y activar la autenticación integrada con los
usuarios del dominio Windows.
En ese caso, deberías activar dicha autenticación, crear cuentas para



todos

los usuarios que tengan
acceso al servidor, bien desde el administrador de usuarios (WinNt), bien
desde el Directorio Activo
(Win2000 Server, o Win2003 Server). Luego, desde el explorador de



archivos,

cabe asignar a los
directorios y archivos los permisos de usuario y nivel de acceso
correspondientes. El único problema
es que para ello tienes que tener control del servidor web. Si no lo



tienes,

entonces sólo cabe
montar un sistema como el que te sugería en el enlace de asptutor.com

Saludos!
Miguel


Karmico escribió:


Gracias Miguel! Me está sirviendo de mucho tu ayuda.

respecto a la cuestión 2, no es eso lo que queria, me refiero a que por
ejemplo yo en IIS creara un usuario generico con permisos para esas
carpetas.

Entonces, cuando me logee correctamente por script el usuario,
autentificarlo en IIS como ese usuario genérico, para que pueda tomar






esos
permisos.

Alguna idea?? Gracias a todos!


"Miguel Gonzalez" escribió en el mensaje
news:#
Hola Karmico.

Sobre la cuestion 1:

el enlace al archivo contendría una referencia del tipo:

http://www.tuserver.com/archivo.asp?id#

...Y la página ASP buscaría el archivo de referencia "23" para servirlo
al usuario (previa comprobación de los derechos de acceso).

Para ello necesitas algún tipo de sistema que almacene los datos de los
archivos subidos, su ubicación y los usuarios que pueden consultarlos.
Por ejemplo, en una(s) tabla(s).

El esquema de directorios sería algo así (todo lo que está en la
carpeta_usuarios es invisible desde internet a no ser que pase por la
página "archivo.asp"):

carpeta_usuarios
carpeta_user_1
archivo23.txt
carpeta_user_2
carpeta_user_n

carpeta_rootweb
archivo.asp

La direccion "http://www.tuserver.com" apunta directamente a
"carpeta_rootweb".

Sobre la cuestion 2, puedes consultar este ejemplo sencillo:

http://www.asptutor.com/asp/vart.asp?idP

Saludos!
Miguel


Karmico escribió:



Uhmm Gracias Miguel, pero sí los usuarios quieren descargar un fichero








de
esa carpeta, como se linkaria??

www.raizdelcliente.com apuntaria a mi
c:/inetpub/wwwroot/clientes/raizdelcliente

en raiz del cliente tendriamos

usuarios/nombredeusuario/archivo.txt

enlazo así

www.raizdelcliente.com/usuarios/nombredeusuario/archivo.txt

donde debería de enlazar?

Cuestion 2º.

Existe algún tipo de archivo de autenticación que podría crear



dinamicamente



con un usuario y clave que autentifique en el servidor en cada carpeta?
Saben algo sobre permisos de usuarios gestionados dinamicamente por ASP?

Gracias a todos!





no lo
"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Creo que la solución pasa por sacar las carpetas de usuario fuera de la



raíz



del servidor web.

Las operaciones de escritura y lectura de los archivos contenidos en



dichas



carpetas cabe
realizarlas mediante una página en ASP que sirva de intermediaria y que
valide si el usuario tiene
derecho a dejar o leer los archivos.

Para acceder desde ASP a las carpetas fuera de la raíz cabe utilizar
"Server.MapPath()".

Saludos!
Miguel

Karmico escribió:




Hola a todos,

Estoy terminando una aplicación web donde usuarios unicamente por









scripts

asp, tienen acceso a su carpeta en el servidor, donde pueden guardar
ficheros, etc etc
Pero tengo un problema, sí alguien con un webcopier analizara la web,



podría




extraer el contenido de cada carpeta de usuario del servidor y
descargarla

Se les ocurre alguna idea para solventar este problema de seguridad?
Gracias.

















Respuesta Responder a este mensaje
#5 Miguel Gonzalez
23/06/2005 - 10:40 | Informe spam
:-))))



Karmico escribió:
MUCHAS GRACIAS ME FUNCIONAAAAAAAA!!!!!!!!!!
lo que ha costao!!!

Gracias Miguel.

"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Desde mi punto de vista, la "cosa" funcionaría de forma parecida a como
gestionas los archivos.

El enlace a la imagen sería a una página intermedia ASP:

<img src="imagen.asp?img=nombreimagen&ext=extension">

...a la que se pasarían los parámetros con el nombre de la imagen a
mostrar: en el parámetro "img" se pasa el nombre de la imagen y en el
parámetro "ext" la extensión de dicha imagen (por ejemplo, para la
imagen "coche.gif" nos quedaría "img=coche&ext=gif").

La página imagen.asp verificaría los permisos del usuario y serviría la
imagen pedida de esta manera:

<%
Dim objStream, FSOPath, marca, imagen, typeRecurso
Set objStream = Server.CreateObject("ADODB.Stream")
FSOPath = Server.MapPath("\")
marca = InStrRev(FSOPath, "\")
imagen = Request.QueryString("img") & "." &_
Request.QueryString("ext")
FSOPath = Left(FSOPath, marca) & "datosprivados\" & imagen
objStream.Open
objStream.Type = 1
objStream.LoadFromFile FSOPath
Select Case Request.QueryString("ext")
Case "gif": typeRecurso = "image/gif"
Case "jpg": typeRecurso = "image/jpeg"
Case "jpeg": typeRecurso = "image/jpeg"
Case "png": typeRecurso = "image/x-png"
End Select
Response.ContentType = typeRecurso
Response.BinaryWrite objStream.Read
Response.Flush
objStream.Close
Set objStream = Nothing
%>

Saludos!
Miguel


Karmico escribió:

Hola Miguel!
Veamos como te he dicho, con los ficheros me va la solución
perfectamente.
Pero además, ahi imágenes que los usuarios no autentificados por asp (es
decir que no han echo LOGIN en un script orquestado por mi) no tendrían



que

ver.

mi web está en el servidor asi

la carpeta es la raíz del web www.web.com apuntaría ahi
c:\servidor\web\clientes\cliente\web

puse las carpetas abajo, fuera del raiz, así
c:\servidor\web\clientes\cliente\datosprivados

y de esa manera, accedo a los archivos a traves de un asp que me da



permisos

para descargarlo o no... hasta ahi todo bien.

Que pasa? que en "datosprivados" tambien tengo imágenes jpg y gif.

Entonces... sí yo en www.web.com (c:\servidor\web\clientes\cliente\web)
quiero mostrar en un area donde se han autentificado, una imagen que está



en

c:\servidor\web\clientes\cliente\datosprivados como la linko?

www.web.com/../datosprivados/imagen.jpg no sería correcto verdad?

No se si me entiendes y no se sí tiene solucion esto gracias por



tu

ayuda!




"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Perdona, pero no acabo de entender el problema...

Si las imágenes están en un directorio bajo la raiz del sitio web
bastaría con indicarlo así en el "src" del elemento <img>:

<img src="imagenes/myimage.gif">

Estas imágenes sería visibles para todos los visitantes de la web.

Ahora bien, si lo que quieres es restringir el acceso libre a las
imágenes tendrás que operar de forma parecida a como hiciste con los
archivos: situarlas en una carpeta fuera de la raíz de la web y
servirlas dinámicamente mediante una rutina ASP que compruebe los
derechos de acceso del usuario, seleccione la imagen del servidor y la
envíe al usuario.

Ten en cuenta que esta práctica puede llegar a consumir muchos recursos
del servidor, por lo que sólo se recomendaría su uso para determinadas
imágenes cuyo acceso no debiera ser público.

Si no es esto, intenta explicarlo de nuevo, a ver si no estoy tan
espeso... :-o

Saludos!
Miguel




Si n

Karmico escribió:


Hola de nuevo,

"Creo que la solución pasa por sacar las carpetas de usuario fuera de la
raíz del servidor web."
me quedé con la solución de Miguel de dejar fuera del directorio web las
carpetas de los archivos.

Respecto a los ficheros, no hay problema me ha funcionado muy bien.

Ahora el tema está en mostrar las imagenes en la web, que sí no se
autentificaron por ASP no podrán ver, pero como puedo mostrarlas cuando
tenga que mostrarlas sí estan bajo la raíz de la web?

Gracias Miguel por todo y a cualquiera que me pueda ayudar,

Saludos

"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

El IIS por sí solo no permite crear o gestionar usuarios. Todo lo más,
permite indicar la cuenta del
usuario de acceso anónimo y activar la autenticación integrada con los
usuarios del dominio Windows.
En ese caso, deberías activar dicha autenticación, crear cuentas para



todos


los usuarios que tengan
acceso al servidor, bien desde el administrador de usuarios (WinNt), bien
desde el Directorio Activo
(Win2000 Server, o Win2003 Server). Luego, desde el explorador de



archivos,


cabe asignar a los
directorios y archivos los permisos de usuario y nivel de acceso
correspondientes. El único problema
es que para ello tienes que tener control del servidor web. Si no lo



tienes,


entonces sólo cabe
montar un sistema como el que te sugería en el enlace de asptutor.com

Saludos!
Miguel


Karmico escribió:



Gracias Miguel! Me está sirviendo de mucho tu ayuda.

respecto a la cuestión 2, no es eso lo que queria, me refiero a que por
ejemplo yo en IIS creara un usuario generico con permisos para esas
carpetas.

Entonces, cuando me logee correctamente por script el usuario,
autentificarlo en IIS como ese usuario genérico, para que pueda tomar







esos

permisos.

Alguna idea?? Gracias a todos!


"Miguel Gonzalez" escribió en el mensaje
news:#
Hola Karmico.

Sobre la cuestion 1:

el enlace al archivo contendría una referencia del tipo:

http://www.tuserver.com/archivo.asp?id#

...Y la página ASP buscaría el archivo de referencia "23" para servirlo
al usuario (previa comprobación de los derechos de acceso).

Para ello necesitas algún tipo de sistema que almacene los datos de los
archivos subidos, su ubicación y los usuarios que pueden consultarlos.
Por ejemplo, en una(s) tabla(s).

El esquema de directorios sería algo así (todo lo que está en la
carpeta_usuarios es invisible desde internet a no ser que pase por la
página "archivo.asp"):

carpeta_usuarios
carpeta_user_1
archivo23.txt
carpeta_user_2
carpeta_user_n

carpeta_rootweb
archivo.asp

La direccion "http://www.tuserver.com" apunta directamente a
"carpeta_rootweb".

Sobre la cuestion 2, puedes consultar este ejemplo sencillo:

http://www.asptutor.com/asp/vart.asp?idP

Saludos!
Miguel


Karmico escribió:




Uhmm Gracias Miguel, pero sí los usuarios quieren descargar un fichero









de

esa carpeta, como se linkaria??

www.raizdelcliente.com apuntaria a mi
c:/inetpub/wwwroot/clientes/raizdelcliente

en raiz del cliente tendriamos

usuarios/nombredeusuario/archivo.txt

enlazo así

www.raizdelcliente.com/usuarios/nombredeusuario/archivo.txt

donde debería de enlazar?

Cuestion 2º.

Existe algún tipo de archivo de autenticación que podría crear



dinamicamente




con un usuario y clave que autentifique en el servidor en cada carpeta?
Saben algo sobre permisos de usuarios gestionados dinamicamente por ASP?

Gracias a todos!





no lo
"Miguel Gonzalez" escribió en el mensaje
news:
Hola Karmico.

Creo que la solución pasa por sacar las carpetas de usuario fuera de la



raíz




del servidor web.

Las operaciones de escritura y lectura de los archivos contenidos en



dichas




carpetas cabe
realizarlas mediante una página en ASP que sirva de intermediaria y que
valide si el usuario tiene
derecho a dejar o leer los archivos.

Para acceder desde ASP a las carpetas fuera de la raíz cabe utilizar
"Server.MapPath()".

Saludos!
Miguel

Karmico escribió:





Hola a todos,

Estoy terminando una aplicación web donde usuarios unicamente por









scripts


asp, tienen acceso a su carpeta en el servidor, donde pueden guardar
ficheros, etc etc
Pero tengo un problema, sí alguien con un webcopier analizara la web,



podría





extraer el contenido de cada carpeta de usuario del servidor y
descargarla

Se les ocurre alguna idea para solventar este problema de seguridad?
Gracias.



















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida