【问题标题】:Pop up - Blocked a frame with origin弹出 - 阻止了一个带有原点的框架
【发布时间】:2014-11-09 21:26:05
【问题描述】:

我正在尝试使用 paypal 实现登录,我有 2 个不同的主机域

1- www.example.com

2- www.example.de

对于 paypal,我需要为此选择一个返回 URL,我选择了 www.example.com/callbackfrompaypal

所以在我的callbackfrompaypal中

 if (!redirectUrl.Host.Equals(_dependencies.HttpRequestContextService.Request.Url.Host, StringComparison.OrdinalIgnoreCase)) //return back orginal domain
 {
     return View(redirectUrl); //If uri host is different than user's host turn back to user's host
 }

redirect Url 是一个使用返回域创建的URI[查询参数并且可以获取原始主机]

所以如果用户从 www.example.de 进入并尝试登录,paypal 会这样给我回电话

www.example.com/callbackfrompaypal?redirectUrl=www.example.de

然后我比较重定向 URL 和当前 URL,如果它们不一样,我将重定向

www.example.de/callbackfrompaypal?redirectUrl=www.asdasd.de

但它会在 POP UP 中完成,正如你们猜想的那样,浏览器告诉我阻止了具有来源“https://www.example.com”的框架访问具有来源“https://www.example.de”的框架

你们能告诉我解决这个问题的方法吗

【问题讨论】:

    标签: c# javascript html asp.net-mvc paypal


    【解决方案1】:

    这是一种安全措施,你真的不能使用 Javascript 访问包含来自不同站点的内容的框架,这将是一个巨大的安全漏洞。

    如果您想这样做,您必须在使用 paypal 之前重新加载您的 .com 域上的页面,否则您需要将信息存储在您的服务器上,然后重定向到 .com strong>.com 域,但我建议您使用第一个选项。

    【讨论】:

    • 如你所说,你是对的,我现在正在做的是,关闭弹出然后重定向父窗口,它可以工作,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 2014-10-16
    • 2016-08-11
    • 2013-08-19
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多