¿Es posible verificar que una conexión de socket proviene de una página web en particular?

4

Supongamos que implementas una API de transmisión basada en websockets en stream.myapp.com . Uno de los consumidores de esta API es su sitio web myapp.com . Mi pregunta es si stream.myapp.com puede verificar que las conexiones provienen de myapp.com de las páginas web que se cargan en el navegador. Básicamente, quiero tener una capa de autenticación para conexiones que no sean myapp.com . ¿Es posible hacerlo de forma segura? ¿O tendré que implementar algo como generar tokens para cada página cargada para myapp.com ?

    
pregunta The Puma 13.02.2018 - 03:35
fuente

1 respuesta

1

Los WebSockets no están limitados por la política del mismo origen, pero el protocolo define un encabezado de Origen. Eso lo establece la página o el servidor que crea la conexión.

Esto es más o menos como una aplicación en la que trabajo maneja esto; hay un filtro delante del punto final de WebSocket, que compara el Origen con una lista de orígenes aprobados (un dominio específico, utilizando HTTP o HTTPS). Si esto coincide, lo dejamos pasar; De lo contrario, es rechazado.

Hay un poco más de información sobre el uso del encabezado Origin en esta respuesta .

    
respondido por el Philip Rowlands 13.02.2018 - 11:22
fuente

Lea otras preguntas en las etiquetas