【发布时间】:2014-01-06 17:53:09
【问题描述】:
我目前正在制作一个在线游戏,我想知道 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');
});
关注点:
- 是否有人可以通过注入以外的其他方式访问我的数据库?
- 谁能修改一下大家加载的静态资源?
- 有人可以访问整个服务器脚本或以某种方式修改其变量吗?
- 有没有办法限制最大并发连接数和一次发送的最大数据量?
- 我需要任何安全模块吗?
- 您认为合适的任何其他问题。
非常感谢。
【问题讨论】:
标签: node.js security express socket.io