Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定它是否';我的客户端正在访问我的服务器吗?_Javascript_Security_Client Server_Client - Fatal编程技术网

Javascript 如何确定它是否';我的客户端正在访问我的服务器吗?

Javascript 如何确定它是否';我的客户端正在访问我的服务器吗?,javascript,security,client-server,client,Javascript,Security,Client Server,Client,假设我们有一个通过网络进行通信的客户机-服务器应用程序,客户端是用javascript编写的(几乎是开源的)。比如说,我们希望在浏览器游戏中运行多人游戏,并从广告中获得一些收入。我们希望继续经营业务,因此我们对处理大部分逻辑的服务器部分保持安全,并且我们接受前端/UI处理客户机被扔到野外,可能会被任何人搞乱 问题是:如何检测和防止有人复制web应用程序的所有面向公众的内容,包括JS客户端,将其与他/她自己的广告、潜在恶意软件等放在他/她自己的服务器上,而“被劫持”的客户端仍与我们的原始服务器对话

假设我们有一个通过网络进行通信的客户机-服务器应用程序,客户端是用javascript编写的(几乎是开源的)。比如说,我们希望在浏览器游戏中运行多人游戏,并从广告中获得一些收入。我们希望继续经营业务,因此我们对处理大部分逻辑的服务器部分保持安全,并且我们接受前端/UI处理客户机被扔到野外,可能会被任何人搞乱

问题是:如何检测和防止有人复制web应用程序的所有面向公众的内容,包括JS客户端,将其与他/她自己的广告、潜在恶意软件等放在他/她自己的服务器上,而“被劫持”的客户端仍与我们的原始服务器对话


或者这只是愚蠢的行为,有一些明显的原因说明这种行为不起作用(这可能就是为什么我没有发现有人提到它)?我觉得我遗漏了一些东西,但从我目前的经验来看,上述段落中的假设情况对一个高利贷者来说是不可能的,甚至是无利可图的。

你不能真正阻止人们使用你的客户端连接到他们自己的服务器。MMORPG已经做了很长一段时间了,即使他们已经编译了胖客户端。当然,在这些情况下,人们必须从头开始重新编写服务器代码

为了防止人们阻止您的广告,您可以在每次发送广告时为每个客户端设置时间戳。如果客户端仍处于连接状态,但有一段时间未向服务器请求新广告,则各种情况都可能出错,例如,您的服务器可能会修改对该玩家的骰子掷骰,使他在除最简单的怪物之外的所有怪物上都会惨死。这是在你的服务器代码中,所以不能弄乱,复制你代码的人很快就会用完playerbase


这种方法最重要的一点是不要给客户一个线索,以及为什么它会在流氓名单上。由于不知道要修复什么,攻击者很难“修复”更改后的代码。

我将把我的评论变成答案。请求有一个推荐人,您根据该推荐人进行验证。这就是当您从请求api密钥时发生的情况

看看请求来自哪里……客户机如何与服务器通信?在大多数情况下,同源策略已经阻止了
other domain.com
上的JS与您的服务器进行通信,除非您有意解决这一问题(CORS、JSONP…),那么是什么阻止了他们仅仅隐藏广告呢如果他们只是像广告拦截器那样删除广告,或者更改广告代码从其他地方读取广告,原始服务器将不再获得eRequests。将其移到屏幕外效果会更好,但攻击者从“将广告移到屏幕外”中获得的收益远小于从“显示自己的广告”中获得的收益。你不能真正阻止一个意志坚定的攻击者弄清楚一切,但你可以尝试降低他的挫败/收益率。没有什么好主意,但你考虑的是不同的问题:有人重新编写服务器本身,而不是从其他来源使用我的。尽管如此,还是要为这个传说投票:)说得好。那么,介绍人欺骗会是一个多大的问题呢?如果用户通过他们的服务器推送请求并更改引用者,那么您对此无能为力。你可以在你的代码中实现一些其他的“黑客”,但是如果这个人想绕过你的东西,他们会的。我想这已经足够好了,没有什么灵丹妙药了:)