在线博彩游戏和安全:如何?

时间:2014-12-27 03:43:33

标签: javascript ruby clojure clojurescript

我开发了一个博彩游戏(使用比特币)。这就是它的设置方式:

在sinatra上使用javascript,clojurescript,ruby。

初始方式(计划A)

  • 客户端:评估JavaScript。这包括所有游戏逻辑和对服务器的请求。是的,所有游戏都在客户端进行评估。

  • 服务器端:处理来自客户端的请求,例如在win上更新数据库中的用户余额。请注意客户端上的JavaScript 方处理游戏逻辑,包括评估胜利条件。

我目前的印象是我犯了一个天文数字严重的错误,我寻求指导,这样我就可以把自己放在正确的轨道上。

我的新方式? (计划B)

  • 客户端:通过GET或PUT下注,以及betsize以及每次下注后的其他初始参数。

  • 服务器端:服务器接收请求并将该信息用作程序的参数,该程序将位于预编译的服务器上并为每个请求运行。然后程序输出将被发送到客户端,相关的JavaScript将知道该做什么(动画和显示结果)。

由于

P.S。 B计划将责任放在我的服务器上。我想我现在需要考虑许多新事物。关于履行表演事宜的建议也将受到赞赏。

1 个答案:

答案 0 :(得分:3)

您的计划A无法轻易保护,因为客户端结果通常不可信任。

您的B计划是一个很好的计划。

你是对的,这将把责任放在你的服务器上。

服务器性能是一个很大的话题。

您可能希望在成长过程中看到一些工具:

  • Memcache - 一个简单的键值内存缓存
  • Varnish - 反向代理缓存
  • Redis - 一个键值存储,特别适用于排行榜等游戏统计数据
  • Ruby memoist gem - 缓存方法' s参数并返回结果
  • 具有良好缓存的任何数据库,例如具有实体化视图的Postgres

针对两种请求:

  • 只读请求 - 通常是HTTP GET
  • 只写请求 - 通常是HTTP PUT,PATCH,DELETE