Veamos, estuve pensando en una simple rutina para evitar que carguen una página si no proviene de un enlace del web principal. Es decir, que copien la ruta completa y la peguen en otra ventana o en otro browser y la carguen. Quiero evitar eso.
Se me ocurrió lo siguiente
Cita:
Funciona bien si se tratan de links de uno de estos 2 tipos:If InStr(Request.ServerVariables("HTTP_REFERER"),Requ est.ServerVariables("SERVER_NAME"))=0 Then
Session("msjeError")=3
Pagina="../msje.asp"
Response.Redirect Pagina
End If
Session("msjeError")=3
Pagina="../msje.asp"
Response.Redirect Pagina
End If
Cita:
<a href="test.asp">con enlace</a>
<a onclick="javascript:parent.location.href='test.asp ';" style="cursor:hand;">con onClick</a>
<a onclick="javascript:parent.location.href='test.asp ';" style="cursor:hand;">con onClick</a>
La página test.asp tiene el código ASP antes mostrado. Si uso dichos links carga sin problema alguno y si copio los links en una pestaña adicional o ventana nueva con el mismo browser, pues me muestra el mensaje de que hubo un acceso no autorizado. Genial.
Pero... no funciona si se trata de ventanas adicionales de las creadas con window.open()
Por ejemplo
Cita:
<script>
function ventana()
{ventana=window.open("test.asp", "", "");}
</script>
<a onclick="javascript:ventana();" style="cursor:hand;">ventana adicional</a>
function ventana()
{ventana=window.open("test.asp", "", "");}
</script>
<a onclick="javascript:ventana();" style="cursor:hand;">ventana adicional</a>
Abre la ventana y me muestra el mensaje de acceso no autorizado. Y la razón es que el HTTP_REFERER no lo reconoce, es más, no captura absolutamente nada de nada.
Y tiene sentido porque es como si, efectivamente, abriera una pestaña o ventana nueva y copiara el link, lo cual hace que el script original funcione.
En resumen: si funciona pero no me permite usarlo en mi web cuando se trata de abrir ventanas adicionales.
¿Que sugieren?
Muchas gracias por el apoyo
Un saludo desde Lima, Perú