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

seguridad basica en intranet.

Estas en el tema de seguridad basica en intranet. en el foro de ASP Clásico en Foros del Web. Hola todos tengo una intranet corporativa hecha en asp y se abre en una ventana flotante.. mi cliente me ha dicho ke tiene dos problemas ...
  #1 (permalink)  
Antiguo 07/09/2008, 10:09
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
seguridad basica en intranet.

Hola todos

tengo una intranet corporativa hecha en asp y se abre en una ventana flotante..

mi cliente me ha dicho ke tiene dos problemas de seguridad. uno es que como las direcciones que uno visita quedan grabadas en internet explorer..
el usuario a veces puede entrar dandole la ruta completa a la aplicacion.. y la idea es que siempre entre por la pagina donde se hace login.

yo tengo un codigo para que solo pudiera entrear si osea si alguien entra por la barra de direcciones no lo dejaba entrar.. pero ultimamente ese codigo ya me esta fayando.. cuando entreo desde un menu desplegable o abro una flotante nueva el cree ke estoy entrando desde la barra de direciones. tonces me tocara cambiar de estrategia o de codigo..

es este:


If Request.ServerVariables("HTTP_REFERER") = "" then
Response.Write "No se puede acceder al software<br> por medio de la barra de direcciones.<BR>"
response.end
end if


la otra opcion que me gustaria usar es que varias de los modulos son dentro de iframes..
entonces me gustaria colocarle un codigo que si esa pagina no es abierta en un iframe que la cierrre o la mande a una pagina de errror.

no se si todo esto sea mejor hacerlo con javascript o todo con asp que me aconcejan?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 07/09/2008, 11:41
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: seguridad basica en intranet.

lexus

para lo de entrar al sitio mejor usa variables de sesión

una ves logiado y validado le pones true a una sesión en especial

session("logiado") = true

luego en todas las demás paginas preguntas si es true, si no re direcciones a login.asp

así aunque pongan la dirección completa de el lugar que quieren visitar si la sesión no es tru lo regresara


de los iframe no los uso asi que no podria ayudarte con ello

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 07/09/2008, 12:30
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Respuesta: seguridad basica en intranet.

yo uso eso, pero ahi tambien hay un problema..
yo uso cookies y esa parte me funciona bien.. el caso es que si se loggea. osea si la sesion esta activa.. pero abre otra ventana del explorador. y tipea la direccion completa de otra pagina entra directamente es ahi donde no quiero que el usuario entre.. lo que necesito es ke no pueda entrar a ninguna parte a menos que de click en el menu, osea si escribe en la barra de direcciones la ruta ke no lo deje entrar.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 07/09/2008, 16:21
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: seguridad basica en intranet.

por que no simplemete le agregas un numero aleatorio al final de cada URL que clickee el usuario, por ejemplo la hora... verifica que sea dentro de un rango... no se.. 10 segundos si no esta dentro de ese rango, MATE!!

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 07/09/2008, 16:25
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Respuesta: seguridad basica en intranet.

yo siempre hago en cada link algo asi: clientes/default.asp?nocache=<%=now()%>

el problema es que esa direccion tambien queda grabada en la barra de direcciones de internet explorer. asi ke cualquier persona podria cambiar esa hora facilmente..

en la barra de direcciones qeuda grabado todas las paginas que voy visitando..
lo que necesito es que no sea posibe entrar a ninguna pagina digitando manualmente desde la barra de direcciones.. osea tiene ke entrar desde una pagina anterior.. por eso intente con Request.ServerVariables("HTTP_REFERER") pero no me dio resultado para todos los casos..

ke podre hacer.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 07/09/2008, 17:34
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: seguridad basica en intranet.

Cita:
Iniciado por lexus Ver Mensaje
yo uso eso, pero ahi tambien hay un problema..
yo uso cookies y esa parte me funciona bien.. el caso es que si se loggea. osea si la sesion esta activa.. pero abre otra ventana del explorador. y tipea la direccion completa de otra pagina entra directamente es ahi donde no quiero que el usuario entre.. lo que necesito es ke no pueda entrar a ninguna parte a menos que de click en el menu, osea si escribe en la barra de direcciones la ruta ke no lo deje entrar.
hace un buen tiempo se toco este tema

http://www.forosdelweb.com/f15/imped...suario-575875/

en el cual expuse una forma que uso para tratar de evitar que un usuario se logue dos veces con su mismo id y para evitar que cargue dos ventanas diferentes de navegador o dos navegadores distintos

ojo: no funciona si es el mismo navegador con pestañas, aun no he investigado (no he tenido tiempo) como controlar el numero de pestaña que inicio sesión

la idea es:

+ obtienes el sessionid
+ insertalo en la tabla usuario
+ cuando el usuario entre a una pagina
+ validas su id (correo o como sea)
+ validas que sea el mismo sessionid
++ si es diferente le dices, has iniciaso sesion en otra maquina y lo botas de el sitio
++ si es el mismo que siga navegando


que quiere decir esto:

inicias sesion en el sitio
amarras el sessionid, si carga otra copia del navegador o carga otro navegador y pega la dirección URL de el primero que cargo, como el sessionid es diferente no lo dejara entrar

bueno seria leas completo ese post quizás te sirva de algo
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 08/09/2008, 00:35
 
Fecha de Ingreso: abril-2006
Mensajes: 69
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: seguridad basica en intranet.

Yo lo hago de la siguiente manera:

En la tabla 'usuarios' de mi base de datos, creo, al menos, tres campos:

- usuario
- clave
- cookie

Cuando alguien hace login, automáticamente hago un update de la cookie, generando un valor aleatorio ('random'). Además, creo una cookie en el ordenador del usuario, de esta manera:

Response.Cookies("ses") = random

Y luego, en todas mis páginas, hago un include a un archivo con el siguiente código:

<%

//////////Conecto con la base de datos//////////

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open .... etc.

//////////Creo el recordset//////////

sql = " SELECT * FROM usuarios WHERE cookie = '"& Request.Cookies("ses") &"'"

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql,Conn

//////////Comprobación de que el usuario está ahí//////////

Set objRS = Conn.Execute(sql)
If (objRS.Eof) Then

Response.Redirect("index.asp")

Else
End If

%>

Así, si el valor de la cookie en el ordenador no coincide con el valor del campo cookie en la base de datos, automáticamente se le reenvía a la página de inicio de sesión.

Saludos.
  #8 (permalink)  
Antiguo 08/09/2008, 05:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: seguridad basica en intranet.

Muy bueno JuanRa no lo había leído
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 08/09/2008, 08:53
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 21 años, 9 meses
Puntos: 1
Respuesta: seguridad basica en intranet.

Yo opino que el metodo que expone JuanRAPerez te serviria.

En mi caso lo que hago es generar un código aleatorio que lo guarda tanto en la base de datos como en la cookie/sesion del usuario, y en cada página utilizo un include que me valida que sean iguales, si no existe la cookie/sesion, o el codigo aleatorio guardado en ellas es diferente al guardado en la base de datos lo devuelvo a la página desde la que se identifica que al conectarse de nuevo crea un nuevo codigo que se vuelve a guardar en ambos lados.

En caso de que no funcionen las cookies/sesiones, puedes crear en el include global a todas las páginas, una variable que guarda la cadena para poder recogerla mediante QueryString, algo así:

Código PHP:
Dim strCodQuery
Dim strCodQueryAnd

strCodQuery 
"?CU=" & [I]La variable con el código aleatorio[/I]
strCodQueryAnd "&CU=" & [I]La variable con el código aleatorio[/I
Y dependiendo de si envias más de un valor, en todos los vínvulos pones una u otra variable


Si quieres rizar más el rizo, puedes utilizar una función que te encripte los valores tanto de las cookies/sesiones/querys como del codigo aleatorio.

Espero que te sirva
  #10 (permalink)  
Antiguo 08/09/2008, 15:56
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
De acuerdo Respuesta: seguridad basica en intranet.

Cita:
Iniciado por Adler Ver Mensaje
Muy bueno JuanRa no lo había leído
jejejej pues de ves en mes se me ocurre algo bueno
hahahaha
__________________
JuanRa Pérez
San Salvador, El Salvador
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 21:20.