2010-08-29 13 views

risposta

7

Ecco cosa ho potuto immaginare: questi nuovi campi sono lì per prevenire gli attacchi tra protocolli. Supponiamo che alcuni JavaScript dannosi siano in esecuzione in un browser Web, tentando di connettersi a server non HTTP, non WebSocket (ad esempio FTP, telnet, SSH). Con la bozza 75, l'handshake consisteva solo nel client che inviava l'intestazione di handshake WebSocket e il server rispondeva senza nulla. Successivamente, il client potrebbe inviare messaggi con cornice \x00...\xFF. Quindi il codice JavaScript dannoso nel client sarebbe stato in grado di connettersi a un server non WebSocket (ad esempio telnet), tentare di accedere ed eseguire i comandi lì. Dopo il Sec-WebSocket-Key1 è stato introdotto, il tentativo di connessione WebSocket avrà esito negativo a meno che il server restituisca il checksum MD5 di Sec-WebSocket-Key1 ecc. Forzare un server non WebSocket (ad es. Telnet) per farlo è quasi impossibile, soprattutto perché il codice JavaScript non ha alcun controllo su Sec-WebSocket-Key1 ecc.

Problemi correlati