Показать сообщение отдельно
  #1 (permalink)  
Старый 26.05.2014, 05:42
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Безопасность в вебсокетах
Что проверять перед тем, как разрешать соединение ws?

Я проверяю origin. И если он совпадает, то разрешаю соединение. Это позволяет защитить сервер от подключений со сторонних ресурсов.

Но, в браузерной консоли origin тоже совпадает, соответственно можно установить соединение через консоль и послать какой-то запрос, который завалит сервер! То есть, злоумышленник подключается к ресурсу, открывает консоль, пишет там например:

var x = new WebSocket('ws://site.ru:3000/');
x.send(/*тут какое-то сообщение*/)

и сервер падает)

Как быть в таком случае?

Вешать дополнительные проверки для отсеивания левых запросов не вариант, нужно беспрепятственное поступление данных! Нужно как-то решить это на уровне рукопожатия (handshake)

Сам сервер опен сорсный, поэтому защита должна быть логической (без хитростей )

В качестве вебсокетов использую ws

Последний раз редактировалось dmitry111, 26.05.2014 в 15:51.
Ответить с цитированием