Вопросы безопасности Socket.io - PullRequest
       15

Вопросы безопасности Socket.io

10 голосов
/ 17 сентября 2011

Мне интересно, как я могу защитить свое соединение socket.io с сервером от следующих проблем:

Проблемы безопасности:

  • Что может помешать злоумышленникам подключиться ксервер сокетов через код на стороне клиента?

Пример:

OUTSIDE DOMAIN REQUEST var socket = io.connect('http://Mydomain', {port: 4000});
  • Пользователи могут создавать тысячи одновременных подключений, просто открывая другое окно браузера.

Как я могу предотвратить эти проблемы?

Ответы [ 2 ]

5 голосов
/ 17 сентября 2011

Вы должны быть в состоянии проверить на стороне сервера, что HTTP-реферер правильный.Проверьте спецификацию socket.io для получения информации как о http, так и о рукопожатии.

https://github.com/socketio/socket.io-protocol

Также версия 0.8 имеет подтверждение от реферера.Не использовал его раньше, но это может быть место, чтобы начать искать:

https://github.com/LearnBoost/socket.io/pull/481

0 голосов
/ 17 сентября 2011

Что ж, если ваши (настоящие) клиенты приходят из хорошо известного местоположения, вы, вероятно, захотите заблокировать всех остальных на уровне брандмауэра. Предполагая, что ваш сервис доступен для всех, вы, вероятно, можете посмотреть механизм рукопожатия клиент-сервер.

...