我有一个场景,页面导航是从一个域到另一个域完成的。 例如,导航是从 http://www.foo.com到 http://www.bar.com在 JavaScript 中单击按钮
重定向时,我需要将用户名和密码从第一个域安全地发送到第二个域。
如何发送这些参数?
我不想使用 GET 并通过 URL 发送它,因为以这种方式发送密码并不安全。 由于域不同,Broswer 的 localStorage 和 SessionStorage 无法工作。
Window.open确实在同一页面中打开了第二个域('_self'),但参数丢失了。除此之外,window.open 的缺点是弹出窗口拦截器会阻止它
Cookie 不起作用。
我想从站点 A 重定向到站点 B,并将用户在站点 A 上输入的用户名和密码传递到站点 B
最佳答案
您不清楚此处的安全隐患:
While redirecting, I need to send username and password securely from the first domain to the second domain.
I do not want to use GET and send it across the URL as it is not secure to send password in that manner.
站点 B 是否不应该知道密码,或者您是否担心有人监听请求并重播?
无论如何,唯一安全的方法是
- 站点 A 向您提供一个 token (可能是 JSON Web Token )
- 您将此 token 与请求一起发送到站点 B。
- 网站 B 获取此 token 并要求网站 A 验证它。
- 经过肯定验证后,站点 B 会为您创建一个 session 。
其他一切(使用 POST 而不是 GET)也是不安全的,监听 POST 请求很简单。
关于javascript窗口重定向安全地传递参数(发布),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325671/