gpt4 book ai didi

javascript - 验证客户端应用程序身份 - 客户端位于浏览器中

转载 作者:行者123 更新时间:2023-12-01 02:42:01 25 4
gpt4 key购买 nike

我有用 PHP 编写的后端(实际上我想这并不重要)。我有用 Javascript 编写的客户端,它在浏览器中启动。

应用程序按以下方式工作:

  1. 用户访问 URL 地址并获取用于渲染数据的原始模板
  2. 通过ajax,GET查询被发送到后端服务器,查询用于填充原始模板的数据。响应以有效的 JSON 形式返回。

这两个请求发生后,我可以打开控制台并重新发送最后一个ajax查询。我可以复制所有参数并轻松从 JSON 获取数据。

我对这种情况并不满意。我想以某种方式找出该查询来自应用程序。

我想到在后端生成一些一次性 token 。在第 1 步中将其交给客户端。Token 只能使用一次。客户端在获取 token 后将立即使用它,从而使 token 对下一次查询无用。 token 的生存时间很短,因为步骤 2 应该紧随步骤 1 之后。

因此,下次如果将 ajax 查询发送到返回有关产品的基本信息的端点(第 2 步),则不会发送回任何数据作为响应。

我并不是在寻求 100% 保证查询没有被欺骗(我觉得这有点不可能,尽管我很高兴有这种可能性)。我正在寻找某种方法来增加欺骗的难度。有一个能在 80% 的情况下工作的锁比没有锁要好,因为它需要断路器更好的资格。

我对我要实现的方法的可行性有些怀疑。

我需要有关人们通常如何做的链接或一般想法的帮助。实现对我来说不是问题。我能找到什么 是“证书固定”,但不确定它对我的情况有什么帮助。

这个问题肯定已经有人在我之前解决了。你知不知道怎么?有什么建议吗?

谢谢

最佳答案

您所说的称为“nonce”,是使用过一次的数字的缩写。您可以在首次加载页面时在 javascript 中设置它并将其添加到任何请求中。您可以将其存储在服务器上的 session 中,以便您可以验证它是否与您预期的随机数相同。来自服务器的每个响应都需要包含一个新的随机数,并且在您的响应处理程序中,您需要更新脚本中设置的随机数。

如果您有大量可以并行发送的请求,您可以存储一组随机数,并在获取它们时在服务器上使它们无效

关于javascript - 验证客户端应用程序身份 - 客户端位于浏览器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47505538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com