【问题标题】:Javascript injection limitations?Javascript注入限制?
【发布时间】:2016-03-18 06:53:27
【问题描述】:

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

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

【问题讨论】:

    标签: javascript url browser console code-injection


    【解决方案1】:

    是的,他们确实可以。您无法阻止欺骗客户端,这就是为什么您需要强大的逻辑服务器端。

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

    那该怎么办?

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

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

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

    【讨论】:

    • 是的,我用代码保存了服务器端的所有值,以检查是否可以如此快速地获得这么多积分。我正在尝试一个简单的蛇游戏,作弊保护似乎很可靠。我担心的是有人编写自己的 js 函数来自主玩游戏,尽可能做出最好的动作,并且永远不会撞到墙上。
    • 你在做一个简单的游戏。它会被欺骗。大公司复杂的多人在线游戏也会被机器人欺骗,这没什么好丢人的。
    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多