为什么这个ajax请求有一个数据字符串,里面有一堆带破折号的数字
Why does this ajax request have a data string with a bunch of numbers with dashes?
我在看一个有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
对象是该站点库中的一个自定义类,如果是这样的话,它可能有自己的数据序列化算法,用于以特定的方式传输数据。
相关文章:
- 键入最后一位数字后自动提交
- 如何用JavaScript或jQuery替换一堆标签
- 如何使用 num.toString 和 str.split 查找整数的最后一位数字
- JavaScript-传单,添加了一堆标记
- 如何将返回一串数字的 JSON 属性转换为日期
- 我如何比较一组数字,找出哪一个更接近生成的数字
- 在一串数字中查找特定值
- 如何将一串数字转换为数组
- 如何使用Gulp编译并移动到另一个文件夹一堆sass文件
- Regex匹配除以7开头的10位数字以外的任何一组数字
- 如何用Javascript生成一串数字和字母
- 从整数中删除最后一位数字
- 有没有更好的方法以一定的顺序执行一堆部分异步的jQuery函数
- 使用一堆 setTimeouts 还是一个 setInterval 来刷新一堆对象更有效
- 用 JavaScript 加一堆浮点数,总和上的误差界限是多少
- 如何防止/延迟一堆 Bootstrap 模块立即加载其内容以防止站点加载时间缓慢
- 将某些内容与一堆斜杠匹配的正确方法
- 使用 setInterval 运行一堆 ajax 好吗?超过 5 个 AJAX 正在运行
- 为什么一串数字的工作方式与新日期中的实际数字不同
- 为什么这个ajax请求有一个数据字符串,里面有一堆带破折号的数字