我正在查看一个带有 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 类是常见的东西还是他们编码的东西?
我将为我自己的游戏编写高分代码,并且我希望它能够以某种方式免受黑客攻击。