如何检测连接的客户端是否已修改(服务器:C#,客户端:AS3)

时间:2018-12-23 15:36:46

标签: c# actionscript-3

对不起,尝试查找现有线程,很幸运。

好奇的是,如果有人有策略来保护易受攻击的游戏客户端,而基本上任何人都要做的就是使用闪存反编译器来修改其中的黑客程序。有谁知道我如何在线上传“合法” Flash客户端,然后人们只能通过在其上传到的网站上播放或使用Flash投影仪内部的URL来连接到它?如果他们下载客户端并尝试将其加载为文件,则它会拒绝,我认为它称为“域锁”或类似的名称。或者,如果我能找到一种将客户端上传到我的网站的方法,但是又无法下载它(就像他们不能按CTRL + S并将文件保存到桌面一样),那也很酷。 / p>

或者如果有人对硬编码有其他建议,可以将其放入C#服务器或AS3客户端中。

请帮忙,如果可以的话,很可能与本段的第一部分一样,那部分似乎是一个可靠的计划,只要他们不能下载客户端,就不能修改它,那么我什至不必在乎他们可以连接还是不能连接。

1 个答案:

答案 0 :(得分:1)

您正在关注错误的问题。

您可以采取多种措施使尝试使用未经授权的客户端的人感到困难。例如,您可以在客户端中嵌入一个加密的一次性使用令牌,该令牌仅对给定的会话有用,并让客户端使用它加密与服务器的任何通信-直到该人设计出每次都下载客户端的mod为止。提取令牌。

您可以使用javascript尝试使下载客户端变得不那么容易-直到用户编写禁用保护功能的Tampermonkey脚本为止。

最终,如果代码在客户端运行,那么您几乎无法做任何事情来完全保证确定的参与者不会对其进行修改,甚至不会构建自己的客户端来连接到您的服务器。相反,您应该做的是处理服务器代码,以检测未经修改的客户端永远不会发送的操作。将所有客户视为不可信任,并验证您从他们那里收到的数据。假设您的服务器将接收完全不合理的输入,并相应地处理边缘情况。 (此外,不要立即假设您收到的不合理输入是故意作弊的,它们很可能是客户端中的错误甚至用户端硬件出现故障的结果。)