Buenas noches:
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: If InStr(Request.ServerVariables("HTTP_REFERER"),Requ est.ServerVariables("SERVER_NAME"))=0 Then
Session("msjeError")=3
Pagina="../msje.asp"
Response.Redirect Pagina
End If
Funciona bien si se tratan de links de uno de estos 2 tipos:
Cita: <a href="test.asp">con enlace</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>
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ú