首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js服务器的Vue.js :如何保护我的POST调用?

Node.js服务器的Vue.js :如何保护我的POST调用?
EN

Stack Overflow用户
提问于 2019-08-19 04:04:15
回答 1查看 194关注 0票数 1

我有一个用Vue.js编写的简单的单页面应用程序(游戏),后端是Node.js,所有这些都托管在Heroku上。我在Vue中的前端使用axios对我的后端进行api调用,后端使用expressmysql库来查询我的数据库,并获得高分或发布新的分数。

我可以接受任何相当简单的东西,但我想设置一个令牌,如果匹配,我可以在我的Node.js中检查,如果不匹配,则发送403。我曾尝试使用令牌设置环境变量,但在前端,如果我检查元素(如果我使用.env文件,然后获取值),则会在资源中显示该令牌。我也尝试过我的config.json文件,但是显然没有办法对使用inspect元素的任何人隐藏这些值。我尝试检查req.hostname,但即使我发送来自邮递员的请求,它也返回200。

如何保护我的post请求?

EN

回答 1

Stack Overflow用户

发布于 2019-08-19 07:38:26

问题

正如其他人所指出的,没有通用的方法来生成不能伪造的信息客户端。问题是,无论生成这些信息的规则有多复杂(例如,游戏分数必须是质数),某些人可能会隔离这些规则并创建任意信息(例如,没有玩游戏的假质数分数)。

对于游戏,这通常导致输入处理(客户端)和游戏规则(服务器)在客户端和服务器之间分离,使得不可能将分数生成从游戏规则中分离出来。然而,这引入了延迟和异步,并需要对客户端游戏进行大量的重构-这是三个困难的问题。

解决方案

有些情况下存在不同的解决方案。以国际象棋为例:给定一个国际象棋棋盘,要求客户在交配之前尽可能少地移动。移动的次数是得分,得分最低的人获胜。客户端必须发送特定的动作,服务器验证结果。换句话说,客户端信息是玩家为游戏生成的全部输入。

作为通用模式,这意味着:将客户端(分数)信息定义为整个游戏输入。记录整个输入客户端,并使用此输入重新运行游戏服务器端。验证结果。

要求:

  • 将输入处理从游戏规则中分离出来,这样它就可以与预定义的服务器和客户端游戏一起运行rules.
  • Eliminate任何随机性来源!

(例如,对相同的随机数生成器或服务器生成的随机数列表使用相同的种子)

您已经接近了这个解决方案,因为您已经明智地为服务器和客户端选择了一种语言,Javascript将数字表示为平台独立的64位浮点数(这避免了舍入误差)。此解决方案避免了延迟和异步,但不允许需要原子服务器端更新和耦合玩家输入的多玩家游戏。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57547978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档