мне интересно, если я делаю вещи в пути РайтNode.js/socket.io дизайн путаница
Существует система оповещения в моей системе, которую я реализована следующим образом.
Сервер:
socket.on('do_activity',function(packet){
io.emit("notification_found_"+packet.receiver_id,packet);
});
Клиент:
socket.on("notification_found_10",function(){
//do some action
});
Примечание: сервер уведомляет пользователя о какой-либо деятельности, найденный пользователем. Переменная пакета содержит идентификатор целевого пользователя (10 в моем случае).
Сервер слушает слушатель do_activity
событий и испускает notification_found
события клиента
Вопросов:
- 1) Сервер распространяет «
notification_found_<user i>
» событие для каждого пользователя с суффиксом ID пользователя. Правильно ли это для внедрить систему уведомлений? - 2) Поскольку любой злоумышленник из браузера может испускать событие do_activity , как его защитить?
Любая помощь очень ценится.
Где именно это реализовано? Какая информация известна одному клиенту о другом при инициировании действия? Если есть некоторая произвольная информация, которую вы можете использовать для кодирования вашего приемника, можно сделать это более безопасным. Как и имя пользователя или что-то еще, что сложнее угадать, чем число. И если он реализован на защищенной части сайта, для которой требуются привилегии для доступа, это также снижает проблему. Немного больше информации было бы полезно. –
Я кодирую идентификатор пользователя. Но я спрашиваю, является ли это правильным способом распространения события конкретному пользователю? –
Я вижу, я смотрел на пункт №2, который вы спросили выше, «как его защитить?» Опять же, я думаю, что слишком мало информации, чтобы хорошо ответить на вопрос. Является ли ваш receiver_id socket.id? –