Javascript 注入限制?

Javascript injection limitations?

我正在开发一个用户可以玩 javascript 游戏的网站。我一直在网上学习 js,但我远不是专家。为了防止在游戏中作弊,我使用 php 和会话变量实现了所有逻辑。现在我的问题是:用户可以用 js 注入做多少?

我知道它可以用于 edit/view 变量和值,但是用户可以注释掉我已经编写的函数并编写他们自己的函数吗?如果这是可能的,那么似乎就没有办法防止作弊。

是的,他们确实可以。你无法防止客户端作弊,这就是为什么你需要强大的服务器端逻辑。

如果您查看像 greasemonkey 或 tampermonkey 这样的项目,这些扩展可以让您轻松地将 javascript 注入任何网站。

那怎么办?

数值必须是服务器端的:金钱、生命值、法力、回合数、屏幕上显示的重要事物的数量。然后当客户向你发送操作时,你必须检查逻辑:他能在他所在的地方获得那么多的钱吗?

基于时间的动作也是一个很好的衡量标准:他每秒执行多少动作?为什么他用 10 分钟回答了 1 分钟的测试?

这是伪伪代码,因为我不知道您的游戏的性质,但它应该可以帮助您入门。