> Faqs > Evitar la edición manual de parámetros de la URL

Evitar la edición manual de parámetros de la URL

Existe algún Script que evite que el usuario pueda modificar manualmente las variables enviadas por la URL?

Por ejemplo, en una URL:

 http://localhost/sitios/active/noticias/detalle.asp?Id=12

Hacer algo que, si el usuario en su navegador me cambia el numero del id, le redireccione hacia otra pagina con un mensaje de error.

Respuestas

Las direcciones que aparecen en la barra de direcciones son siempre editables. Es imposible que el navegador te bloquee de editar manualmente una dirección, ya que es algo que pertenece a la interfaz de usuario y que se usa para poder usar en propio software. Eso creo que está claro, por lo que todo lo que puedes hacer son estrategias paralelas. Se me ocurren estas cosas:

Encriptar el valor enviado en la URL

Evitar enviar el parámetro de la URL tal cual. Si lo envías encriptado simplemente será irreconocible el valor que se está enviando, por lo que también sería irreconocible el valor que el usuario deba poner para poder irse a otra página.

En este caso la URL tendría una forma como esta:

example.com/pagina.asp?id=htYO36lkAd4

Por mucho que el usuario intente cambiar algo, lo más seguro es que no se pueda llegar a una página o identificador que exista realmente. Por supuesto, tendrías que elegir un algoritmo de encriptación de ida y vuelta, para que el valor se pueda encriptar y desencriptar. Los lenguajes suelen tener varios algoritmos a elegir. Si no, sería cuestión de instalar la librería adecuada.

Usar un iframe

En vez de navegar a través del propio navegador, puedes llevar al usuario en su navegación a un iframe. El iframe no muestra la dirección de la página que hay dentro, por lo que el usuario debería saber cómo modificar esa página manualmente (con las herramientas de desarrolladores podría)

Navegar a través de un popup

Parecido a un iframe, una posibilidad sería abrir un popup que no tenga la dirección visible, de modo que no sea posible editarla. Pero esto depende mucho de los navegadores, puesto que algunos por seguridad siempre van a mostrar la url de la página que está en el popup.

Kevin
31 1

Lo que haría yo es crear la página con 2 marcos, uno de 1 px y el otro del resto de la pantalla, así lo que se consigue es que no salgan los nombres de los archivos a los que accedes ni los parámetros que pasas por la URL.

Javier Serrano Herrero