javascript窗口重定向传递参数安全(发布)

时间:2016-02-10 20:52:59

标签: javascript parameters dns navigation passwords

我有一个场景,从一个域到另一个域完成页面导航。 例如,导航完成 http://www.foo.com来 在{javascript

按钮上点击http://www.bar.com

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

如何发送这些参数?

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

Window.open会在同一页面中打开第二个域(' _self'),但参数会丢失。在那个window.open的顶部有弹出阻止阻止它的缺点

Cookie不起作用。

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

2 个答案:

答案 0 :(得分:1)

有几种方法:

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

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

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

答案 1 :(得分:0)

您不清楚这里的安全隐患:

  

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

     

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

网站B是否应该知道密码,还是您担心有人在听取请求并重播?

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

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

其他一切(使用POST而不是GET)也是不安全的,收听POST请求是微不足道的。