Node.js 基本socket.io身份验证

Node.js 基本socket.io身份验证,node.js,socket.io,Node.js,Socket.io,我有以下代码允许用户加入聊天室开始聊天 server.on('connect', function(data) { nickname = prompt('What is your name?'); server.emit('join', {name : nickname, room : $('#roomid').val()}); $('#events').append('<li>Welcome, ' + nickname + '!</li>'); }); s

我有以下代码允许用户加入聊天室开始聊天

server.on('connect', function(data) {
  nickname = prompt('What is your name?');
  server.emit('join', {name : nickname, room : $('#roomid').val()});
  $('#events').append('<li>Welcome, ' + nickname + '!</li>');
});
server.on('connect',函数(数据){
昵称=提示符('你叫什么名字?');
emit('join',{name:昵称,房间:$('#roomid').val()});
$(“#事件”)。追加(“
  • 欢迎,”+昵称+!
  • ”); });

    然而,我有一个担忧:是什么阻止了用户发送数百个用户名的“加入”信息,以及向聊天室发送垃圾邮件?我是实时编程的新手,所以我想知道我可以使用什么样的技术来防止这种行为

    默认情况下,阻止用户这样做并没有什么好处。您需要构建服务器端安全性来处理这种事情;IRC就是一个很好的例子,在IRC中,一些服务器设置了一些系统来限制或断开收到垃圾邮件的用户。考虑服务器端附加逻辑的这些选项:

  • 如果用户在一段时间内发出超过一定数量的事件,则限制用户(即使其发送的事件被忽略);如果他们经常或特别过度这样做,则断开连接/将其列入黑名单
  • 忽略在不允许状态下发出的事件;例如,在某处跟踪所连接套接字的用户名(即),如果他们发送另一个
    join
    事件,则放弃该事件

  • 默认情况下,阻止用户这样做并没有什么好处。您需要构建服务器端安全性来处理这种事情;IRC就是一个很好的例子,在IRC中,一些服务器设置了一些系统来限制或断开收到垃圾邮件的用户。考虑服务器端附加逻辑的这些选项:

  • 如果用户在一段时间内发出超过一定数量的事件,则限制用户(即使其发送的事件被忽略);如果他们经常或特别过度这样做,则断开连接/将其列入黑名单
  • 忽略在不允许状态下发出的事件;例如,在某处跟踪所连接套接字的用户名(即),如果他们发送另一个
    join
    事件,则放弃该事件