La bozza precedente e superata della specifica WebSocket 75 non specifica le intestazioni delle richieste HTTP Sec-WebSocket-Key1 e Sec-WebSocket-Key2. Perché l'ultima bozza include questi e cosa in termini di maggiore sicurezza?Perché WebSockets senza Sec-WebSocket-Key1 non è sicuro?
risposta
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.
- 1. WebSockets non funziona senza WebApp
- 2. Perché CopyOnWriteArrayList è sicuro?
- 3. Perché eval non è sicuro in javascript?
- 4. Perché è sicuro sopprimere questo avviso non controllato?
- 5. È sicuro usare SUM() senza ISNULL()
- 6. È sicuro usare LIMIT senza ORDER BY
- 7. Perché il mio certificato radice non è sicuro?
- 8. Perché è -freciprocal-math non sicuro in GCC?
- 9. Perché il tubo multiprocessing Python non è sicuro?
- 10. perché "f = f ++" non è sicuro in c?
- 11. Perché "vapply" è più sicuro di "sapply"?
- 12. C# perché sizeof non è sicuro e come ottenere dimensioni di una struttura in modo sicuro?
- 13. Firefox WebSockets
- 14. jstack - file noto non è sicuro
- 15. Prestazioni WebSockets
- 16. Perché "Stream.collect" è sicuro per tipo e "Stream.toArray (IntFunction <A[]>)" non lo è?
- 17. Perché un thread di coda circolare singolo consumatore del singolo produttore è sicuro senza blocco?
- 18. Perché MSVC++ considera "std :: strcat" non "sicuro"? (C++)
- 19. Perché non esiste una politica di origine identica per WebSockets? Perché posso connettermi a ws: // localhost?
- 20. Java - ByteArrayOutputStream è sicuro senza flush() e close()?
- 21. TransportWithMessageCredential è senza certificato sufficientemente sicuro per un servizio WCF?
- 22. Perché `$ @` non è affidabile?
- 23. Dopo tutto, log4j non è sicuro?
- 24. Filetto NSUserDefault è sicuro?
- 25. Autenticazione WebSockets
- 26. Il cucchiaio non è sicuro in Haskell?
- 27. PHPUnit genera "Avviso: data(): non è sicuro ..."
- 28. È possibile utilizzare ReST su Websockets?
- 29. Yesod, WebSockets e persistente
- 30. Qual è la differenza in Swift tra "non proprietario (sicuro)" e "non proprietario (non sicuro)"?