Как защитить Socket.io от клиентского внедрения?
Никак, всё что может сделать браузер - то может сделать и клиент, притворившись браузером
Никак. Но вы можете менять данные для подписки, например, если у вас есть канал:
App.User.{userId}
То вместо идентификатора пользователя, используйте какой нибудь хеш, который будет меняться раз в несколько часов. Таким образом, избежать несанкционированного подключения к комнате нельзя, но, это несколько затруднит процесс рандомного подключения к комнатам.