Redirigir de forma segura a un dominio diferente con información confidencial

1

Tengo una situación en la que los usuarios que inician sesión en un sitio se redirigen a otro dominio, también inician sesión allí y luego se redirigen a mi sitio principal (de modo que el inicio de sesión en uno permite que inicien sesión en ambos). Incluiremos algún tipo de token con el inicio de sesión para autenticar la solicitud. Ambos sitios tienen certificados SSL válidos.

Mis dos preocupaciones son:

1) Como las redirecciones deben usar GET en lugar de POST, ¿cómo puedo enviar el token sin que esté expuesto en la url?

2) La url a la que estoy redireccionando está usando HTTPS, sin embargo, sé que hago esta pregunta ( Cómo asegurar que mis solicitudes de API se envíen usando SSL ) que SSL puede verse comprometida si no verifica los certificados en ambos extremos de la solicitud. ¿Cómo se puede hacer esto para una redirección?

Estoy usando PHP y Laravel. Soy un principiante en lo que respecta a la seguridad web, por lo que me disculpo por las preguntas básicas. Si este no es el intercambio de pila adecuado para esta pregunta, hágamelo saber y lo eliminaré. ¡Gracias!

    
pregunta Christian 15.11.2016 - 19:52
fuente

1 respuesta

1
  

Como las redirecciones deben usar GET en lugar de POST, ¿cómo puedo enviar el token sin que esté expuesto en la url?

Las redirecciones pueden usar realmente POST (código de redirección 307) pero como POST se considera una operación de cambio de estado contraria a GET, no debe repetirse sin preguntarle al usuario. Lo mejor sería si no importa cuándo se hace visible el token, es decir, puede ser cifrado por el sitio de origen y descifrado por el lado objetivo. Esto se puede hacer, por ejemplo, con criptografía de clave pública si el origen conoce la clave pública del destino.

  

sin embargo, sé ... que SSL puede verse comprometido si no verifica los certificados en ambos extremos de la solicitud.

Esta afirmación no es verdadera y no se afirma en la pregunta a la que hace referencia. Para asegurar una conexión SSL contra ataques de man in the middle, solo es necesario que el servidor se autentique con un certificado y que el cliente lo valide correctamente. Los certificados de cliente solo son necesarios si al servidor le gusta autenticar al cliente, pero no son necesarios para la protección contra un intermediario.

No hay nada especial a tener en cuenta con las redirecciones y HTTPS en su caso: el cliente simplemente hace TLS en ambos sitios y valida sus certificados.

    
respondido por el Steffen Ullrich 15.11.2016 - 20:32
fuente

Lea otras preguntas en las etiquetas