299 votos

¿Es una cadena de consulta HTTPS seguro?

Estoy creando una API basada en la web seguro que utiliza HTTPS; ¿Sin embargo, si permiten a los usuarios a configurarlo (incluyen el envío de contraseña) usando una cadena de consulta también será seguro o debo forzarla a realizar a través de un POST?

398voto

dr. evil Puntos 12196

Sí, lo es. Pero usando la obtención de datos confidenciales es una mala idea por varias razones:

  • En su mayoría referencia HTTP fuga (una imagen externa en la página de destino pueda perder la contraseña de[1])
  • La contraseña se almacena en los registros del servidor (lo cual es obviamente malo)
  • Historia de la caché de los navegadores

Por lo tanto, aunque Querystring está asegurada no se recomienda la transferencia de datos confidenciales a través de querystring.

[1] Aunque debo nota de que el RFC establece que el navegador no debe enviar referentes de HTTPS a HTTP. Pero eso no significa un mal 3er partido de la barra de herramientas del navegador o de una imagen externa/flash de un sitio HTTPS, no de fuga.

66voto

VolkA Puntos 10297

A partir de una "olfatear el paquete de red" punto de vista de una solicitud de seguro, como el navegador primero establecer una conexión segura y, a continuación, enviar la solicitud que contiene los parámetros GET. Pero OBTENER la url se almacenan en el navegador del usuario / historia de autocompletar, que no es un buen lugar para almacenar por ejemplo. contraseña de datos. Por supuesto esto sólo se aplica si usted toma más amplio "Webservice", definición que podría acceder al servicio desde un navegador, si tiene acceso a ella sólo a partir de la aplicación personalizada, esto no debería ser un problema.

Así que el uso de post, al menos para los cuadros de diálogo de contraseña debería ser preferido. También como se señaló en el enlace littlegeek publicado un OBTENER la URL es más probable que se escribe en los registros del servidor.

25voto

shoosh Puntos 34322

Sí. El texto completo de una sesión de HTTPS está protegido por SSL. Eso incluye la consulta y los encabezados. En ese sentido, un POST y GET sería exactamente lo mismo.

En cuanto a la seguridad de su método, no habría forma real a decir sin una inspección adecuada.

21voto

Aaron Digulla Puntos 143830

SSL primero se conecta al host, por lo que el nombre de host y número de puerto se transmiten en forma de texto claro. Cuando el host responde y el desafío se realiza correctamente, el cliente va a cifrar la solicitud HTTP con la URL (ej. nada después de la tercera barra) y enviarla al servidor.

Hay varias maneras de romper esta seguridad.

Es posible configurar un proxy para actuar como un "hombre en el medio". Básicamente, el navegador envía la solicitud para conectarse al servidor real para el proxy. Si el proxy está configurado de esta manera, se conectará a través de SSL para el servidor real, pero el navegador todavía va a hablar con el proxy. Por lo que si un atacante puede obtener acceso al servidor proxy, puede ver todos los datos que fluye a través de él en texto claro.

Sus peticiones también será visible en el historial del navegador. Los usuarios puede ser tentado para marcar el sitio. Algunos usuarios han sincronización de favoritos de herramientas instalada, por lo que la contraseña podría terminar en la deli.ci.us o en algún otro lugar.

Por último, alguien podría haber hackeado su computadora y se ha instalado un registrador de teclado o una pantalla de raspador (y un montón de Caballo de Troya del tipo de virus). Ya que la contraseña es visible directamente en la pantalla (como opuesto a "*" en un diálogo de contraseña), este es otro agujero de seguridad.

Conclusión: Cuando se trata de seguridad, siempre se basan en el camino trillado. Hay mucho que usted no sabe, no piensa y que se rompa el cuello.

10voto

Ali Afshar Puntos 22836

Sí, siempre y cuando nadie está mirando sobre su hombro en el monitor.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X