我刚刚用Meteor完成了一个应用程序,它可以测试水域并真正尝试将Meteor排除在外。我的应用程序是一个带有64个按钮的双人游戏。两个用户输入单个游戏,无论谁按下最多按钮,都会获胜。除了一部分之外,一切都运行良好,游戏中的用户可以通过在控制台中键入一些jQuery轻松作弊,最明显的是$('.button').click();
。经过一段时间搜索Meteor Docs并反复试验,我感到难过。按钮是特定于两个玩家的集合的一部分。只要一个玩家登录服务器端代码,就会将按钮插入名为“游戏”的集合中。 如何保护用户不通过JavaScript控制台修改代码?我显然不希望发布100行代码,我希望如果你想看看我的应用程序如何操作的主旨具体代码请查看我的Git Repo。还有一个指向实际游戏的链接:Bubble Popper
答案 0 :(得分:1)
您无法控制客户在其计算机上执行的操作。您最好希望在服务器端添加一些限制。也许任何人都不可能在1秒内点击两个按钮?如果不是,则在服务器上添加此限制。
答案 1 :(得分:0)
来自How does Facebook disable the browser's integrated Developer Tools?
这应仅适用于chrome。
Object.defineProperty(console, '_commandLineAPI',
{ get : function() { throw 'Nooo!' } })
话虽如此 - 这不是安全 - 只是一种来自无知的美化事物/安全。
安全性应该通过服务器端Meteor.methods
以及数据库中的允许/拒绝规则进行。