El anteproyecto viejo y reemplazado 75 de la especificación WebSocket no especifica los encabezados de solicitud HTTP Sec-WebSocket-Key1 y Sec-WebSocket-Key2. ¿Por qué el último borrador incluye estos, y qué en términos de mayor seguridad?¿Por qué WebSockets sin Sec-WebSocket-Key1 es inseguro?
Respuesta
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.
- 1. ¿Por qué strncpy es inseguro?
- 2. ¿Por qué eval es inseguro en javascript?
- 3. ¿Por qué MSVC++ considera que "std :: strcat" es "inseguro"? (C++)
- 4. Boost: ¿qué es exactamente inseguro en Boost.Signals?
- 5. ¿Qué es inseguro en este código?
- 6. ¿Por qué aparece el error "Código inseguro solo puede aparecer si se compila con/inseguro"?
- 7. ¿Es esto PHP redirigido inseguro?
- 8. ¿Por qué mi bloque de código inseguro es más lento que mi código de seguridad?
- 9. WebSockets atendidos por un Servlet Container
- 10. Firefox WebSockets
- 11. WebSockets rendimiento
- 12. Código seguro contra inseguro
- 13. ¿Están strtol, strtod inseguro?
- 14. ¿El navegador Wii es compatible con WebSockets?
- 15. ¿Por qué Thread.stop() es tan peligroso
- 16. ¿por qué SOAP sin WSDL?
- 17. Reutilizando websockets entre páginas?
- 18. ¿Por qué Count no es un entero sin signo?
- 19. ¿Cuál es la diferencia fundamental entre WebSockets y TCP puro?
- 20. Alternativa a WebSockets
- 21. ¿Cómo saber si el método nativo es seguro/inseguro?
- 22. ¿Cómo depurar websockets?
- 23. ¿qué se puede usar en su lugar si captcha es inseguro?
- 24. ¿Por qué un búfer de tamaño fijo (matrices) debe ser inseguro?
- 25. por qué "f = f ++" no es seguro en c?
- 26. inseguro '^' tema jshint
- 27. Soporte de JBoss Websockets?
- 28. Última inserción de SQL en Drupal. ¿Es realmente inseguro?
- 29. Node.js websockets Socket.IO
- 30. Autenticación de WebSockets