2010-08-29 27 views
9

Bản nháp cũ và được thay thế 75 của đặc tả WebSocket không chỉ định các tiêu đề yêu cầu HTTP Sec-WebSocket-Key1 và Sec-WebSocket-Key2. Tại sao bản nháp mới nhất bao gồm những dự thảo này và những gì về mặt tăng cường bảo mật?Tại sao WebSockets không có Sec-WebSocket-Key1 không an toàn?

Trả lời

7

Dưới đây là những gì tôi có thể tìm ra: các trường mới này có sẵn để ngăn chặn các cuộc tấn công qua giao thức. Giả sử rằng một số JavaScript độc hại đang chạy trong trình duyệt web, cố gắng kết nối với các máy chủ không phải HTTP, không phải WebSocket (ví dụ: FTP, telnet, SSH). Với bản nháp 75, cái bắt tay chỉ bao gồm khách hàng gửi tiêu đề bắt tay WebSocket và máy chủ trả lời không có gì. Sau đó, khách hàng có thể gửi \x00...\xFF tin nhắn được đóng khung. Do đó, mã JavaScript độc hại trong máy khách sẽ có thể kết nối với máy chủ không phải WebSocket (ví dụ: telnet), cố gắng đăng nhập và chạy các lệnh ở đó. Sau khi Sec-WebSocket-Key1 đã được giới thiệu, nỗ lực kết nối WebSocket sẽ thất bại trừ khi máy chủ trả về tổng kiểm tra MD5 Sec-WebSocket-Key1 vv. không thể, đặc biệt là vì mã JavaScript không kiểm soát được Sec-WebSocket-Key1, v.v.

Các vấn đề liên quan