Прежде всего, о WebSockets следует помнить две вещи: (а) это развивающийся стандарт и (б) он предназначен для работы с ненадежными клиентами.
Самый большой и самыйВажная вещь, которую вы всегда должны делать с WebSockets, это проверять их происхождение.Если источник не совпадает, очевидно, вы не хотите иметь дело с этим клиентом, поэтому игнорируйте их запросы.Кроме того, убедитесь, что вы используете защищенный протокол WebSocket "wss", а не незащищенный протокол "ws".Это гарантирует, что ваши сообщения будут зашифрованы.
Проблема только в том, что эта информация может быть подделана.См. этот пост для быстрой демонстрации этого.
Дополнительная безопасность:
- Попробуйте отправить соленый токен, посолить его / хэшировать и отправить обратно, ипроверено в фазе рукопожатия.
- Ограничение запросов, которые происходят слишком часто (как протокол IRC).Если пользователь отправил 10 или более строк в течение секунды, игнорируйте этого пользователя.
- Выполните быструю проверку на спам (для этого существует множество алгоритмов) - придерживайтесь легкой эвристики, в противном случаебудет обременять ваш сервер.Такие вещи, как наличие слов «бесплатно» или «виагра».Дайте пользователю оценку, которая представляет вероятность того, что он является спамом или является ботом.Когда это нарушено, загрузите их с серверов.
Надеюсь, это поможет!Извините, если это не так.Это мой первый ответ на StackOverflow.: P