我正在考虑创建一个HTML5游戏.我知道很可能没有人会试图作弊,但我想确定(并且有兴趣看看是否有任何好的技巧).
我理解使用开源软件的优点,并希望我的代码能够被阅读和填充.但是,在游戏类型的情况下,用户的分数将被发送到服务器进行存储,我可以看到一个问题,即用户可以打开他们的devtools(在大多数浏览器中为F12)并修改脚本或变量中的值给自己一个更高的分数或一百个生命.我不在乎人们是否这样做,但我不希望他们的分数被存储.
案例研究:Candy Box 2(candybox2.net)花了我不到20秒就获得了1亿份糖果.
有没有办法阻止这种情况发生?
我们正在构建使用基于位置的定价的服务.用户可以输入地址并查看其区域中的价格,这由各种服务器端算法确定.然后可以根据这些价格订购商品.
我想知道在这种情况下我们是否可以使用客户端地理编码(以避免达到Google Maps API使用限制),例如用户输入他的地址,浏览器使用JS库获取地理编码结果并将其包含在表单提交中.问题是用户可能会篡改表单提交,并可能将订单下达到他的地址,以获取适用于不同坐标集的价格.
我想听听你对如何确保这一点的建议.例如,如果地理编码结果可以某种方式签名以验证它没有被篡改,那将是惊人的吗?
在我的小提琴中我有一个例子,应该只允许用户通过根据一些计算的javascript将提交按钮元素禁用为false来点击提交.
function enable(TVD) {
if (TVD[TVD.length - 1] >= trueTVD - 5 && TVD[TVD.length - 1] <= trueTVD + 5) {
//console.log(TVD[TVD.length - 1]);
$('#submitButton').prop("disabled", false);
} else {
$('#submitButton').prop("disabled", true);
}
}
Run Code Online (Sandbox Code Playgroud)
发生的事情是我发现有些用户设法绕过这个可能是通过使用开发工具之类的东西.
我想设计这个,以免我的安全被绕过.如何实现此目标或隐藏开发工具中的javascript?