在不同域之间共享令牌

问题描述

我正在寻找一种在一个 Web 应用与第二个 Web 应用的前端之间安全地共享令牌的方法

环境详情:

  • webapp.local一个 PHP 网络应用程序,它讲述一些仅限于特定用户的数据。此网络应用只能通过 VPN 访问。
  • otherwebapp.example:这是一个 Zendesk 实例,它允许我们创建一个在客户端加载的插件(HTML + JavaScript)。

注意事项:

  • webapp.localotherwebapp.example 使用不同的域(它们不是子域)。
  • otherwebapp.example 无法访问 webapp.local。但前端将能够(用户已连接到 VPN)。

我做了一些研究,发现了一些选择:

  • HTTP Coockies:“SameSite”必须是“None”(reference),这是一个安全的选择吗?我做了一些测试,似乎它们需要在同一个子域中。
  • JS postMessage:它需要打开一个弹出窗口或 iframe,我做了一些测试,但仍然试图让它工作。

问题是: 是否有最佳做法或其他方式在 Web 应用程序和位于其他域/应用程序上的前端之间共享敏感数据(令牌)?

解决方法

我认为没有一种完全安全的方法可以做到这一点,因为您想在客户端处理共享并且总是公开的,尽管您可以采取不同的方法,例如通过 GET 参数将请求令牌共享给第二个 webapp 并调用一个验证 API 来验证请求的来源(应该仅限于第二个 webapp 域)并验证传递的令牌,然后返回实际的会话令牌。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...