为在线迷你游戏提供安全的网络语言?

时间:2010-12-17 17:42:13

标签: server-side

我见过很多用Javascript(二十一点等)创建的小型在线游戏。虽然它们中的一些非常整洁,但它们似乎并不安全,因为Javascript呈现在客户端。在查看我想要创建的一些游戏,并考虑使用付费游戏/用户帐户进行长期思考时,我认为在某些游戏逻辑对最终用户隐藏的情况下,我需要更安全的东西。 / p>

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

只是寻找想法。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

你的前端是javascript,Flash还是其他任何东西 - 当它告诉后端“玩家只是翻过一张卡并获得二十一点”时,你需要能够在服务器上确认玩家可以翻转卡片并立即获得二十一点。

就技术而言,使用你所知道的 - PHP会很好,你只需要确保你对用户输入做了那些检查。

答案 1 :(得分: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)。转换所有',< ,>字符代码是一个良好的开端,但你应该彻底研究这个主题。为了帮助进行跨站点脚本攻击,您应该忽略来自其他域名的请求,除非您有其他需要做的事情。

对于所有编程问题,请仔细考虑并尽可能多地测试尽可能多的数据。