我目前正在制作一个在线游戏,我想知道 Node.js 和 socket.io 的安全性。
游戏现状
我所有的
io.sockets.on('connection', function (socket) {
socket.on('request', function (data) {
}) });
是安全的。玩家可以使用任何数据(指“数据”)发出任何请求(在此示例中请求指“请求”),即使他们手动修改他们发出的请求和数据,他们也无法利用它并绕过客户端基本安全。他们也无法通过发送无效数据使服务器崩溃。
注意:我只有 2 个发射:发射用户/通行证以登录和发射输入。服务器通过各种“发射”发送数据。session() 或 GET/POST 没有“通常”的概念。在客户端,我专门使用
var socket = io.connect('http://something:3000');
socket.emit('request', data);
对于玩家需要获取代码+图像的静态资源,它看起来像:
app.use(express.static(__dirname + '/public'));
对于数据库:
client = mysql.createConnection({ host: 'localhost', user: 'root', password: 'something',});
client.connect(); client.query('USE dbname');
最后是路由?,无论请求如何,我都会显示相同的页面:
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
关注点:
- 有人可以通过注入以外的其他方式访问我的数据库吗?
- 有人可以修改每个人加载的静态资源吗?
- 有人可以访问整个服务器脚本或以某种方式修改其变量吗?
- 有没有办法限制最大并发连接和一次发送的最大数据量?
- 我需要任何安全模块吗?
- 您认为适当的任何其他问题。
非常感谢。