gpt4 book ai didi

javascript - 保护纯客户端主干应用程序

转载 作者:行者123 更新时间:2023-11-29 09:54:09 25 4
gpt4 key购买 nike

假设我要实现一个拼字游戏,我希望它是 100% 的客户端,即主干处理所有游戏逻辑。是否可以保护这样的解决方案,使用户无法欺骗游戏 Action ?

这可能吗?

最佳答案

我认为有几件事必须留在服务器端,即使在(几乎)全客户端解决方案中也是如此

  1. 安全 - 您必须在客户端之外进行某种授权和身份验证
  2. 验证 - 你永远不能相信用户生成的内容,在 Backbone 同步期间发送到服务器的 JSON 模型在某种程度上是用户生成的内容(因为任何人都可以打开控制台并弄乱你的模型并保存)

我知道像 Firebase 这样的解决方案很好地处理#1,但我不确定他们是否处理#2

因此,在这种情况下,Sébastien 的回答是一个很好的解决方案,而不是服务器验证,您让对等方根据他们对游戏的表示来验证他们从其他对等方获得的是有效的移动。但是,您怎么知道谁是对的?大多数人获胜?我看不出有什么方法可以避免出现某种服务器端状态,即“主”并验证每个 Action 都是“有效” Action 。

一种方法是让您的服务器端在 Node.js 上运行,这样您就可以避免在两个不同的地方重写您的验证逻辑。您不需要在服务器端运行整个逻辑,只需验证部分。

还有一些方法可以在服务器端运行整个 Backbone 应用程序(例如 this approach ),但我不确定这里是否需要。

您需要服务器端验证的其他几个原因:您如何知道用户正在保存什么?例如如果您没有大小限制,是什么阻止他们将整个盗版电子书数据库存储在您的应用程序中,如果您在服务器端没有验证,理论上任何拥有控制台的人都可以推送任何内容。

关于javascript - 保护纯客户端主干应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15823882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com