0

我正在做一个宠物项目,需要克服应用程序中的一个主要障碍。我检查了无数的论坛和文章,只找到了我要找的一些零碎的东西,所以我希望更直接的方法能帮助我。

场景如下: 1. 该站点实际上是一个游戏,它在具有多个 IFRAMES 的页面上使用 Javascript/JSON 和 DHTML - 其中两个在外部页面内部和一个单独的域的更深处。

  1. 我正在尝试做的事情没有安全问题。所有编程和访问仅限于仅简化和自动化正常访问功能。所有身份验证和私人信息都在任何访问之前完成,并且只会使用会话信息,并且仅用于促进用户知道会发生的游戏操作。

  2. 这个想法是使用 webbrowser 控件来访问游戏并提供普通访问,而托管浏览器的应用程序获取游戏会话信息并对游戏服务器进行单独的自动调用。这已经通过 Firefox 使用 Greasemonkey 脚本完成,并且运行良好 - 除了 Firefox 存在可怕的内存泄漏,最终导致整个操作崩溃。

我遇到的问题很明显。我正在尝试访问在技术上位于不同域的 iframe,而 Web 浏览器 DOM 模型不会让我进入。我已经看过足够多的文章,知道 XSS 过滤器块有几种解决方法,但它们非常模糊且各不相同视情况而定。

所以,我将准确地概述我需要什么,希望我能得到一个友好的解决方案......

  1. 我需要获取不同域的嵌套 IFRAME 的 DOM。如果需要,我可以只使用源代码,但 DOM 和 JS 变量将是最理想的。我的策略是使用会话信息并使 HttpWebRequest 调用与游戏中的 Web 浏览器并行。这样我就可以在玩的同时自动化一些功能。可以做到——如果我可以获取会话信息并以相同的方式传递它。这一切都将在用户许可和知识的情况下在同一个客户端上完成,因此没有安全问题。

  2. 如果我可以将信息传回该 IFRAME,我真的很高兴。该项目试图做的主要事情之一是进行一些视觉更改以简化界面的外观。这一切都在 HTML 中,所以更改只是添加一些 JS 代码的内联样式......

所以无论如何,什么想法和建议最有效?在这一点上,我对所有场景都持开放态度,但理想情况下,尽可能简单地获得我需要的东西。这已经是一个巨大的项目:)。

提前致谢!

4

2 回答 2

0

如果您可以控制所有相关站点,则可以使用 postMessage 进行通信。还有easyXDM,它提供了一组也可以在旧浏览器中使用的传输(并自动选择最好的)。

https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage

于 2013-09-15T18:40:57.073 回答
0

可以绕过 XSS 检查并iframes通过访问IOleContainer,如此处所述。该示例使用 C++,但在 C# 中使用 COM 互操作执行相同操作应该不是问题。

于 2013-09-16T03:52:58.710 回答