首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在跨域重定向中添加标头

如何在跨域重定向中添加标头
EN

Stack Overflow用户
提问于 2015-08-24 15:49:46
回答 1查看 818关注 0票数 0

在这里,情况如下:

域A上有一个网页。用户正在域A中进行身份验证(并在sessionStorage中保存auth令牌),并在其中进行一些活动。然后用户需要进入域B上的页面。一旦他从域B登陆到该页面,该页面就应该保留来自域A的令牌。我控制着域B的服务器。

最简单的方法是在域A的页面上有一个按钮,其内容如下

代码语言:javascript
复制
location.href = 'domainB.com/?authtoken=mytoken'

这就是我面临的问题:

1)我不能(也就是强烈不希望)在URL中使用查询参数,即使连接是https: URL(一般情况下)是被记录的,而且任何攻击都很容易窃取令牌auth,这是安全漏洞。

2)我不想设置跨域cookies同样的原因(安全性)。

3) domainB应用程序是基于API的,服务器和客户端都是无会话的。所有令牌都位于sessionStorage中,以防止安全漏洞。

在过去的几天里,我做了很多谷歌搜索,但似乎我不能为跨域页面加载添加自定义的标题。“‘POST”不重新加载页面。到目前为止,我能够发明的唯一选择是放弃使用服务器端会话,即:

( a)在从域A导航到B之前,请服务器B创建一次性使用的会话密钥。

使用该会话键的查询参数导航到域B。

( c)一旦域B上的服务器获得会话密钥的“GET”请求,检索相关的auth令牌,丢弃会话密钥(即有效地使其成为一次定时器),并在标头中使用auth令牌服务页面。

这种方法的问题:

  1. 它迫使我使用服务器端会话,即严重的性能下降。
  2. Auth令牌被保存在域B服务器端会话中(不管是暂时的),这增加了整个系统的安全漏洞。
  3. 仍然对中间人的攻击持开放态度。

还有其他建议吗?其他人是怎么解决的?我不认为每个人都使用这样的安全失败作为URL查询参数。

EN

回答 1

Stack Overflow用户

发布于 2015-08-27 05:37:35

好吧,我自己想出来的。解决方案是:获取domainA页面,包含iframe并从domainB加载该iframe,然后将带有令牌/auth信息的domainA页面的消息发送到iframe,在该特殊页面(现在驻留在iframe中)接收该消息,并将其值存储在sessionStorage (现在属于domainB)中,然后从iframe执行postMessage到父级,通知存储数据,然后导航到父级的domainB --一旦主domainB页面加载,就需要在sessionStorage中提供所需的信息。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32186522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档