如何保护游戏的源代码仅用于允许的域?

时间:2014-01-08 01:14:34

标签: javascript security protection

我想只允许我的游戏在某些域上运行。默认情况下,javascript的构建版本可以在任何地方使用,并且会缩小和缩小。如果在允许的域外使用,我可以做些什么才能“打破”游戏?

我正在考虑一些能够读取域名的内容,并以此为基础。但这很容易欺骗,只需更改我请求域名的地方的所有实例,并放置一个允许的地址。

另一个是在我的自定义服务上请求一点点数据。想象一下,我在允许的域上,我请求一些随我提供的时间戳而变化的数据。此外,响应将基于允许的域列表。如果允许ajax / post请求中的源域,则发送“右”位,否则,它将“中断”游戏;这种情况偶尔会发生在游戏中。

你怎么看?很容易破解?

2 个答案:

答案 0 :(得分:1)

通常,javascript(或任何客户端语言)不是放置安全或许可相关代码的正确位置,因为它可以通过修改javascript轻松绕过。缩小Javascript会使修改更难/更慢,但不会阻止它。

如果涉及某种服务器端语言,那么您可以调查服务器端许可解决方案,但通常也可以由有权访问服务器的任何人修改或反编译服务器端脚本。

另一种选择可能是在您自己的服务器上托管大量代码,任何想要使用您的游戏的服务器都需要通过服务器向您的服务器发送一个许可证密钥,以便向您的服务器发送服务器请求,这就是许可证密钥保持私密,只有您的服务器和托管服务器知道它,您的服务器将使用会话令牌进行响应,然后客户端可以使用该会话令牌来访问您的游戏。由于许可证密钥将保密,这将使第三方更难以拦截它,如果没有它,它们将无法获得会话令牌。但这只有在涉及服务器端语言的情况下才有效,如果它都是在javascript中完成的话那么这个用处不大。

答案 1 :(得分:0)

修改服务器,使其根据客户端的子网地址返回不同版本的脚本。这样,客户端对有效(或任何)DNS没有依赖性,服务器完全控制授权过程。

然后,客户端将收到一个应用程序版本,然后可以报告错误并终止。