2010-12-17 84 views
1

我见过不少用Javascript(二十一点等)创建的小型网络游戏。虽然其中一些非常整洁,但它们似乎并不安全,因为JavaScript呈现在客户端。在看看我想创建的一些游戏,并考虑长期使用付费/用户帐户时,我想我需要一些更安全的地方,其中某些游戏逻辑对最终用户是隐藏的。网络迷你游戏的安全网页语言?

任何可以满足此要求的网页语言/技术建议?开源/免费是最好的。 Flash是这里的最佳选择吗(不是开源的)?我目前在标准HTML/CSS/Javascript和PHP方面拥有最丰富的经验。

只是寻找想法。

谢谢!

回答

2

在处理安全性时,您总是必须定义安全性。如果您正在运营赌博网站,您当地的博彩委员会可能会对此发表一些看法。如果你只是为了好玩而玩多人游戏,那么你的定义可能会更宽松(假设偶尔的作弊不会毁了这一天)。

一般来说,如果您想完全防止最终用户能够干扰游戏玩法,那么所有真正的工作都必须放在您控制的服务器上。这意味着PHP,ruby,perl,python,Java等......使用flash,javascript或html5前端,您必须假设可以产生不值得信任的数据,即使它是完美的。

为了尽量减少恶意播放器向服务器发送特制伪造数据的影响,您应该使用服务器端语言来处理缓冲区大小/边界检查以及为您清理输入参数。我大量使用PHP,它像大多数脚本语言一样自动处理边界检查。 PHP不会自动清理在客户端输入的数据,但具有良好的字符串操作工具,所以我可以自己做。请注意处理用户输入的撇号,html标记和javascript,以防止Sql注入(http://en.wikipedia.org/wiki/SQL_injection)和Cross Sight脚本攻击(http://en.wikipedia.org/wiki/Cross-site_scripting)。将所有',<,>转换为字符代码是一个好的开始,但您应该彻底研究该主题。为了帮助跨站点脚本攻击,您应该忽略来自其他域名的请求,除非您有其他特殊需要。

至于所有的编程问题,仔细想一想,并尽可能使用尽可能多的数据进行测试。

2

这里最好的选择是在服务器端保持您需要的安全处理,并验证来自客户端的任何内容。

无论您的前端是JavaScript,Flash还是其他任何东西 - 当它告诉后端“玩家刚翻过一张卡并获得二十一点”时,您需要能够在服务器上确认玩家可以现在翻转一张牌并拿到二十一点。就技术而言,使用你知道的 - PHP将会很好,你只需要确保你正在对用户输入进行检查。