2010-08-29 17 views

Respuesta

7

Esto es lo que pude deducir: estos nuevos campos están ahí para evitar ataques entre protocolos. Supongamos que se está ejecutando JavaScript malicioso en un navegador web, intentando conectarse a servidores que no son HTTP ni WebSocket (por ejemplo, FTP, telnet, SSH). Con el borrador 75, el apretón de manos consistió en solo que el cliente enviara el encabezado del handshake de WebSocket y que el servidor respondiera sin nada. Después de eso, el cliente podría enviar \x00...\xFF mensajes enmarcados. Por lo tanto, el código JavaScript malicioso en el cliente podría haber sido capaz de conectarse a un servidor que no sea WebSocket (por ejemplo, telnet), intentar iniciar sesión y ejecutar comandos allí. Después de Sec-WebSocket-Key1 se ha presentado, el intento de conexión WebSocket fallará a menos que el servidor devuelva la suma de comprobación MD5 de Sec-WebSocket-Key1 etc. Forzar un servidor que no sea WebSocket (por ejemplo, telnet) para hacer eso es casi imposible, especialmente porque el código JavaScript no tiene control sobre Sec-WebSocket-Key1 etc.

Cuestiones relacionadas