JavaScript 窗口重定向安全地传递参数 (POST)

javascript window redirect pass parameters securely (post)

本文关键字:参数 POST 窗口 重定向 安全 JavaScript      更新时间:2023-09-26

我有一个场景,页面导航从一个域到另一个域。例如,导航是从http://www.foo.com 至在JavaScript中单击按钮 http://www.bar.com

重定向时,我需要将用户名和密码安全地从第一个域发送到第二个域。

如何发送这些参数?

我不想使用 GET 并通过 URL 发送它,因为以这种方式发送密码并不安全。Broswer的localStorage和SessionStorage不起作用,因为域不同。

Window.open 会在同一页面("_self")中打开第二个域,但参数会丢失。在该窗口之上,打开具有弹出窗口阻止程序阻止它的缺点

饼干不起作用。

我想从站点 A 重定向到站点 B,并将用户在站点 A 上输入的用户名和密码传递到站点 B

您不清楚这里的安全含义是什么:

重定向时,我需要将用户名和密码安全地从第一个域发送到第二个域。

我不想使用 GET 并通过 URL 发送它,因为以这种方式发送密码并不安全。

是站点 B 不应该知道密码,还是您担心有人监听请求并重播它?

无论如何,唯一安全的方法是

  • 站点 A 递给你一个令牌(可能是 JSON Web 令牌)
  • 将此令牌与请求一起发送到站点 B。
  • 站点 B 获取此令牌并要求站点 A 对其进行验证。
  • 确认后,站点 B 会为您创建一个会话。

其他所有内容(使用 POST 而不是 GET)也是不安全的,监听 POST 请求是微不足道的。

有几种方法:

1)使用POST:在您的网页中创建一个<form/>并使用javascript即时放置一些隐藏变量,然后将其发布到另一个网站。

2)使用标题:你能看看是否可以设置标题吗?

3)使用令牌:您可以尝试使用令牌,您可以使用令牌代替用户+pwd组合。因此,发生的情况是,您使用嵌入在URL中的令牌从网站A重定向到B,网站B在对用户进行身份验证之前将令牌验证到网站A上可用的API。您可以使这些令牌在 X 秒后自行过期。