繁体   English   中英

如何只接受来自客户端的请求

[英]How to accept requests only from the client

我正在做我自己的项目。 一个简单的VueJS游戏。 它已在JWT上注册。 当用户获胜/失败时,客户端向后端发送相应的请求,以增加数据库中的获胜/失败次数。

为此制作端点,我意识到我可以使用CORS限制对我的 API 的访问,毕竟,用户可以从localStorage获取他的jwt access token或在网络选项卡的其他请求中查看它。 在同一个选项卡中查看获胜时发送的请求是什么样的,使用fetch从浏览器控制台发送相同的请求,并使用他之前收到的令牌。 这样,他将能够在不玩游戏的情况下增加获胜次数。 并且CORS不会以任何方式阻止这个请求,因为 header Origin将是相同的。

所以问题是:我的 API 如何接受仅由我的游戏( axios )发送的请求

不幸的是,这是不可能的。 如您所见,您可以直接从浏览器控制台发送请求。 此外,您可以在运行时更改 javascript 代码,因此您甚至无法信任自己的代码。 所以唯一的解决方案是改变你的应用程序的工作方式。
唯一的真实来源是您的服务器,您可以从那里决定哪个玩家赢或输。 每个回合都应通过发送请求或 WebSocket 消息向服务器发出信号。 游戏结束后,服务器应向您的客户端发送一条消息,报告得分。
在单人游戏的情况下,您应该通过发送所有必需的信息来验证服务器端的玩家得分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM