弹出 - 阻止具有原点的框架

时间:2014-09-16 08:00:00

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

我正在尝试使用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
 }

重定向Url是使用返回域[查询参数创建的URI,可以获取原始主机]

因此,如果用户从www.example.de进入并尝试登录,PayPal会像那样给我回电话

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

然后我比较重定向网址和当前网址,如果它们不相同,我会重定向

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

但它会在POP UP中完成,正如你们猜测浏览器告诉我阻止了一个原始“https://www.example.com”的框架来访问一个来源为“https://www.example.de”的框架

你们能告诉我如何解决这个问题

1 个答案:

答案 0 :(得分:2)

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

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