Si está utilizando HTTPS / SSL y confía en sus puntos finales, esto es bastante seguro para sus propósitos, ya que el parámetro de obtención se cifrará como parte de la cadena de consulta, por lo que la captura de tráfico no es un problema.
Lo más probable es que los hashes "secretos" terminen en los registros del servidor web del servidor web en el que se encuentran los servidores de su aplicación web, pero si controla estos registros, entonces para su nivel de seguridad deseado probablemente no sea un problema.
Obviamente, también tendrá que confiar en todos los servicios que almacenan estas URL (marcadores de navegador, servicios en la nube, etc., pero le parece que está de acuerdo). Pensaría que el mayor riesgo estaba aquí (por ejemplo, uno de sus usuarios inicia sesión usando una computadora pública, y el siguiente usuario de esa computadora pública mira el historial del navegador, hace clic en el enlace y tiene acceso a sus datos protegidos).
Si estás usando HTTP no cifrado, tus hash secretos también terminarán en los registros del servidor proxy y, básicamente, cualquier persona que pueda escuchar tu conexión tendrá muchas oportunidades de capturar los secretos.
Sin embargo , solo haría la autenticación directa de GET param si realmente no me importaba mucho el secreto y la integridad de los datos que los hashes secretos deben proteger (básicamente, si quisiera mantener a raya a las hordas de vándalos estúpidos, pero no creía que una persona determinada pudiera estar lo suficientemente interesada en mis datos para intentar acceder a ella, y no tenía ningún problema si resultó que estaba equivocada).
Una forma muy sencilla de mejorar considerablemente la seguridad de su esquema de autenticación sería hacer que los tokens secretos expiren, o incluso mejor, tratarlos como contraseñas de un solo uso. Entregue a cada usuario una lista de tokens, que se utilizarán uno tras otro. Esto no requiere mucho código en el lado del servidor y resuelve el problema de que uno de sus usuarios accidentalmente deje / publique su token secreto en algún lugar.