Best Practice: Legitimate Cross-Site Scripting尽管跨站点脚本编写通常被认为是负面的,但我遇到了几种有必要的情况。 我最近在一个非常有限的内容管理系统的范围内工作。我需要在页面中包含数据库代码,但是托管服务器没有可用的任何可用内容。我在自己的服务器上设置了几个准系统脚本,最初以为我可以使用AJAX将脚本内容直接导入CMS模板(从而保留动态图像,菜单项,CSS等)。我错了。 由于 在这种特定情况下,我无法将子域指向服务器。我也无法在CMS服务器上创建可以代理服务器内容的脚本,所以我最后的想法是使用远程JavaScript。 可以使用远程JavaScript。当用户禁用JavaScript时,它会中断,这是一个缺点。但它有效。我在使用远程JavaScript时遇到的"问题"是我必须使用JS函数 我的解决方法如下: 我的脚本收到GET参数("页面"),然后查找文件( 尽管此解决方案有效,但似乎有更好的方法可以完成同一件事。使跨站点脚本工作专门用于包括来自完全不同域的内容的最佳方法是什么? 您有以下三种选择: 创建一个远程脚本以读取远程动态HTML。使用类似jQuery的库可以使此操作更容易。您可以使用load函数在需要的地方注入HTML。编辑我最初的意思是例如#2是利用JSONP,它要求服务器端脚本识别" callback =?"参数。 使用客户端Flash代理并在服务器的Web根目录上设置crossdomain.xml文件。 我个人将调用服务器上的该其他域,并获取并解析那里的数据以供您在页面中使用。这样,您就可以避免任何问题,并且获得了服务器端语言/平台的强大功能来获取和解析数据。 不确定这是否适合您的特定情况...即使您的详细描述也很难知道... 您可以尝试easyXDM,只需包含很少的代码,就可以在不同域的文档之间传递数据或方法调用。 iframe远程内容可以通过本地javascript访问。 远程服务器只需设置页面的 例如: 站点A包含一个 的iframe home.php看起来像这样:
我以前遇到过该YDN服务器端代理脚本。它说它是为与Yahoo's Search API一起使用而构建的。 如果您只需要剪裁Yahoo API代码,它将适用于任何域吗?还是需要将其替换为您要使用的域? |