gpt4 book ai didi

javascript - 如何保护 HTTP POST 请求不被批准的 JavaScript 客户端接收?

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

我有一个 URL,它将接受发布的数据并存储它的记录 - 这是用于分析。我需要确保世界上任何人都不会向它发布信息,但是我可以使用什么可能的身份验证机制来安全地公开详细信息?我认为 JavaScript 无法在不公开的情况下访问任何 secret 数据。

我可以将其基于任何 HTTP header ,但这些都可以被欺骗,对吧?

如果有帮助的话,客户端和服务器都是 https。

编辑:我认为我需要更明确地陈述问题;抱歉,我以为我可以简洁地解释它,但它显然没有被理解!想象一下以下情况:

  1. https://example.com/index.html 的静态页面包含一个脚本,https://example.com/script.js .

  2. 脚本向另一个远程 URL 发出请求,例如

    ajax_call('https://stats.example.com/stats.php', 'some data');
  3. stats.php 脚本只是将'some data' 写入文件

现在,缺陷是任何人都可以简单地将任何内容发布到 stats.php 并且它将写入该文件。我想将其限制为仅我的“客户”,即 https://example.com/index.html

如果可以的话,我会在 stats.php 中做类似的事情:

if ($_SERVER["HTTP_REFERER"] == 'https://example.com') {
do_stuff();
} else {
die('not allowed');
}

但我一直认为 HTTP_REFERER(和其他类似的 header )可能会被欺骗,因此毫无意义。

最佳答案

I need to secure that against anyone in the world from POSTing to it, but what possible authentication mechanism can I use that it is safe to expose the details of?

如果端点需要由访问公共(public)网站的每个人的浏览器访问,那么您就不能。

浏览器完全在用户的控制之下。他们可以检查浏览器所做的一切。然后他们可以使用其他 HTTP 客户端重新创建该内容。

如果您足够信任浏览器以允许其向您的分析 API 发出请求,那么您也必须信任浏览器的所有者。将它们分开是不可能的。

<小时/>

您能做的最好的事情就是分析发送到分析 API 的数据,以了解常见或不可能的行为模式。

关于javascript - 如何保护 HTTP POST 请求不被批准的 JavaScript 客户端接收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56003820/

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