【问题标题】:Solving Cross Site Scripting Resource Sharing解决跨站脚本资源共享
【发布时间】:2012-04-03 13:51:39
【问题描述】:

我想在 iframe 中加载外部网站。但是由于同源同域策略而面临问题。因此,为了解决这个问题,我使用了代理解决方案,我们将请求发送到代理文件(我用 java 编写),然后它请求服务器并返回响应。这工作得很好。

但是使用这种方法,所有页面都没有正确加载到我的 iframe 中。 目前我正在本地主机上工作。我面临的问题是在获取页面时出现了一些错误,例如:- 在获取 www.google.com 时出现以下错误:-

GET http://localhost:8080/images/srpr/logo1w.png 404 (Not Found)

a.html:101 GET http://localhost:8080/extern_js/f/CgJlbhICaW4gACswRTgALCswWjgALCswDjgALCswFzgALCswPDgALCswUTgALCswCjgAmgICaGUsKzCYATgALCswFjgALCswGTgBLCswQTgALCswTTgALCswTjgALCswVDgALCswaTgALCswkAE4ACwrMJIBOAAsKzDVATgALCsw2AE4ACwrMBg4ACwrMCY4ACyAAlCQAnA/Q4V9Cbp7fuo.js 404 (Not Found)

出现这些错误是因为在我正在获取的网页中指定了相对路径(我猜)。我对吗?如果我是那么如何纠正这些事情,以便可以纠正这些错误。

在网上搜索后,我得到了一个完美的网站。请结帐http://optimizely.com

【问题讨论】:

  • 还有 2 个其他 GET 错误我无法发布,因为信誉点低和 * 的跨度检查
  • SOP 的存在是有原因的...为什么你试图绕过它?
  • 编辑您的问题以提供更多信息。
  • 其实我想创建一个平台,让别人可以打开他的网站,修改它的模板,让他的网站看起来更好

标签: javascript xss


【解决方案1】:

问题似乎是,如果站点使用相对 HREF(相对于加载站点的域/路径),那么您的解决方案将导致问题,因为您已将明显的加载域/路径更改为其他内容.

一种可能性是您将标签注入页面中的正确位置(在<head> 部分),如下所示正确设置基本href:

<base href="http://www.google.com">

查看这篇文章了解更多信息:http://www.drostdesigns.com/base-href-tag/

这个解决方案并不是万无一失的,因为如果站点已经在使用&lt;base href="xxx"&gt; 标签,您可能会导致问题,并且如果 javascript 代码正在根据加载的域/路径进行操作,则基本 href 将无法解决该问题。这些问题是否重要取决于特定页面。

如果基本 href 解决方案不起作用,您可能还必须代理所有其他资源请求(图像、ajax 调用等),以便所有发往其他主机但向您请求的内容都是适当地代理。这样会更万无一失。

【讨论】:

  • 谢谢jfriend00,你的回答真的很有帮助。
【解决方案2】:

我们无法仅通过您迄今为止发布的问题描述来判断.. 但是如果答案确实如您所暗示的那样,那么只需更正它 - 每当您获得相关链接时,通过在您的代理脚本中添加域来使其成为完全合格的。

【讨论】:

    最近更新 更多