2010-08-29 2 views

ответ

7

Вот что я мог бы выяснить: эти новые поля существуют, чтобы предотвратить перекрестные атаки. Предположим, что какой-то вредоносный JavaScript работает в веб-браузере, пытаясь подключиться к серверам, отличным от HTTP, не-WebSocket (например, FTP, telnet, SSH). С проектом 75 рукопожатие состояло только из клиента, отправляющего заголовок рукопожатия WebSocket, а сервер ничего не ответил. После этого клиент может отправить \x00...\xFF обрамленные сообщения. Таким образом, вредоносный код JavaScript в клиенте мог бы подключаться к серверу, отличному от WebSocket (например, telnet), попытаться войти в систему и запустить там команды. После ввода Sec-WebSocket-Key1 попытка подключения к WebSocket завершится неудачей, если сервер не вернет контрольную сумму MD5 Sec-WebSocket-Key1 и т. Д. Заставляет сервер, не относящийся к WebSocket (например, telnet), сделать это почти невозможно, особенно потому, что код JavaScript не имеет контроля над Sec-WebSocket-Key1 и т. д.

Смежные вопросы