为什么这个ajax请求有一个数据字符串,里面有一堆带破折号的数字

Why does this ajax request have a data string with a bunch of numbers with dashes?

本文关键字:一堆 数字 破折号 请求 ajax 有一个 数据 字符串 为什么      更新时间:2023-09-26

我在看一个有javascript游戏的网站,我看到了它是如何保存高分的。代码如下:

    (new Request({
        url: window.location.toString().split("#")[0],
        data: {
            action: "save_score",
            score: this.tenths,
            time_started: SERVER_TIME
        },
        onSuccess: HighScores.updateAndShow.bind(HighScores)
    })).send()

但当我打败游戏并保存我的高分时,我在Chrome开发工具中查看,请求看起来像这个

    Form Data
    action:save_score
    data:115-100-113-115-103-66-49-58-56-63-38-117-126-108-120-118-120-122-116-112-128-112-107-116-116-125-84-72-69-71-53-126-121-120-117-104-104-62-145-90-81-110-133-83-83-145-132-97-93-149-135-139-105-76-107-77-117-132-96-136-105-123-136-87-63-125-95-61-59-77-61-59-59-69-51-114-57-143-148-160-196-115-193-188-188-172-192-186-174-185-185-138-125-115-193-182-186-178-172-192-193-174-191-193-178-177-138-126-128-132-129-133-132-133-133-134-132

我不知道"score:this.tenths,time_started:SERVER_time"是如何转换为"data:115-…"的。我在javascript中找不到创建该字符串的位置。

这是标准的编码方式吗?这是浏览器自动转换的东西吗?这看起来像一个普通的ajax库吗?它用破折号创建这个数字字符串?你认为这是为了安全,还是只需要发送所有这些号码,他们就决定用破折号将每个号码分开?Request类是一个常见的东西还是它们编码的东西?

我将为我自己的游戏编写高分代码,我希望它不会被黑客入侵。

这里可能发生任何事情。也许这些数字是字符代码?

如果你想保护你的游戏免受作弊者的攻击,你可以记录用户采取的所有行动,并在服务器上重新创建游戏会话,并在那里计算高分。但当然,你仍然会遇到人们使用机器人的问题。

我很确定Request对象是该站点库中的一个自定义类,如果是这样的话,它可能有自己的数据序列化算法,用于以特定的方式传输数据。