如何安全地区分我的应用和浏览器流量的流量

时间:2015-11-19 01:29:27

标签: security mobile

我正在设计一个对网络上的数据库进行查询的游戏。该数据库由Web服务提供。例如,请求可能如下所示:

Endpoint: "server.com/user/UID/buygold"
POST:
    amount: 100

Web服务将确保userid有足够的资金购买100金币,然后根据交易的成功返回布尔答案。

但是,我想限制某人可能做的自动化游戏过程的脚本数量。例如,他们可以找出他们的用户ID,并在他们工作时为他们购买黄金的自动化任务。

在网络服务方面,我可以采取哪些合理的安全措施来拒绝除真正的应用流量之外的所有应用流量。是否还有一种方法可以胜过反向工程师,他们会将应用程序分开并寻找密钥/证书?

1 个答案:

答案 0 :(得分:1)

我希望这不适用于生产环境,单独的安全问题令人难以置信,当然超出了允许响应的范围,因为它需要相当冗长和深入的需求和建议列表,真正取决于构成您的Web服务环境的许多其他因素。例如,网络拓扑,认证,会话控制和管理以及各种其他变量都在促进和实施健全的网络安全对策中起重要作用。

但是,假设您已完成所有工作,我将回答您的主要问题如下:

提问:

  

"我可以采取哪些合理的安全措施来降低除真正的应用流量之外的所有措施#34;

<强>答案:

这是解决您特定问题的众多选项之一,即检查请求中的客户端User-Agent标头,可能如下所示:

  

&#34; Mozilla / 5.0(Macintosh; Intel Mac OS X 32.11; rv:49.0)Gecko / 20122101 Firefox / 42.0&#34;

根据脚本如何运行以自动化游戏玩法,如果它是以浏览器扩展名的形式,那么用户代理实际上作为一种对策非常糟糕,如果另一方面,脚本正在运行直接从客户端到您的服务器(Web服务),然后,您可以立即检测到它,并且有一些方法可以检测是否有人欺骗用户代理只是为了绕过这种反制措施。

您可以使用的另一个对策是客户端级别的会话管理。因此,这需要对您如何实现特定项目的架构概述,但总体概要将遵循如下模式:

  • 客户/ GamePlayer自然需要登录(某种身份验证)

  • 游戏玩家正在使用的客户端系统(用户界面)将采用前端类型的脚本语言实现的对策,即Javascript或任何使用JS的框架,如如jQuery,DoJo等

  • 注册监视操作的事件处理程序,例如输入类型,一些布尔逻辑,它们将遵循以下内容: &#34;如果输入不是来自键盘或鼠标,则发送带有请求的标记&#34; 服务器/ Web服务将具有适当处理此请求的逻辑。这将是一种在他们犯下违规行为后捕获/检测游戏玩家的方法,出于法律原因等用于描述证据等。另一方面,如果你想防止这种情况发生,那么,你可以使用类似这样的布尔逻辑:&#34;如果输入不是来自键盘或鼠标(或任何允许的输入设备) ,然后不允许动作(GamePlay),仍然报告回网络服务器&#34;

还有十几种其他方式,但是这个方法似乎通常会解决您的问题,前提是您考虑到有数百个其他因素需要考虑,从网络级别到应用程序层,以及向下您使用的Web服务模式,例如它是否是REST / API类型的环境,是否遵循MVC模式,等等。在网络安全方面没有任何希望,它确实是一个积极和持续的倡议,以确保所有利益相关者&#39;资产受到保护,在这种情况下,资产是网络服务和游戏玩法,威胁是游戏玩法篡改的风险,这会影响游戏的完整性。

现在,关于你的第二个问题:

  

&#34;是否还有一种方法可以胜过逆向工程师,他们会将应用程序分开并寻找密钥/证书?&#34;

当逆向工程师真正关注它时,你无法真正做到,无论你采取何种对策,他们都会找到一种解决方法,这就是为什么它被称为逆向工程,他们会对你的反击措施进行反向工程,所以,不要对它充满愤世嫉俗,你必须接受这样一个事实,那就是没有真正的&#34;特朗普&#34;在网络安全方面采取对策。但是,您可以在网络层和应用程序级别使用各种机制,结合主动计划,入侵检测,游戏模式的异常行为特征,这些都将降低您的风险;尽管如此,您的最终前沿将是确保您在服务条款(服务条款)中制定了良好的法律政策,并且根据您在哪里托管您的网络服务(地理位置),您将受到保护当用户违反此类条款时,尤其是当您有措辞阻止用户尝试进行逆向工程,篡改游戏记分板或货币等等时。

另一个好方法是真正与用户联系,用户是人,人们有时会忘记他们也通过他们的行为影响他人,因此,一旦用户意识到他/她的行为可能会对他人产生负面影响,例如,在用户提高其100金币的行为的情况下,他们可能在经济上和情感上影响可能已经投入实时和努力使其成为可能的其他人,因此,签署时的简单介绍性欢迎视频例如,可以创造奇迹;但是,有时用户可能并不真正知道他们被禁止使用自动脚本进行游戏,或者至少可以对其进行肯定性的辩护,因此,拥有良好发布的策略可以真正减轻并可能完全减少这些类型的风险。尽管用户的前景可能乐观,但您仍然需要运用良好的编程实践并采取安全措施措施。

我希望我已经给了你一些见解和指导来帮助你解决这个问题,而且正如你所看到的,它实际上是一个参与,可能是一个非常复杂的过程。

祝你好运。