【发布时间】:2011-06-18 05:44:36
【问题描述】:
使用 JavaScript,非常需要从 Web 获取一些页面,而无需实际从当前页面移动并隐藏在用户的视线之外。
要请求一个网页而不向用户显示它,使用 XMLHttpRequest 很容易,但它有其自身的局限性,最重要的是它不能很好地检索跨域页面。出于安全原因,浏览器(在我的情况下为 Mozilla FireFox 3.6+)从目标站点检索标头,如果允许在该标头中访问引用者的位置,则只有这样浏览器才能继续获取目标网页,JavaScript 才能解析检索到的信息。
这会导致 XMLHttpRequest 与某些页面一起工作,而不能与其他页面一起工作如果您正在尝试访问 跨域页面。当然,如果您需要从与 XMLHttpRequest 所在的引用页面相同的位置检索信息,它会很好地工作。
这是一个大问题,当 security 并不是真正的第一优先级时。例如,想象编写一个脚本来从生成统计数据的网站检索实时数据,或者想象一个机器人需要从在线游戏网站检索数据。
现在,如何使用 JavaScript 从其他域获取页面(跨域引用)?
我想也许我们可以找到一个插件来完成这项工作(当然是在用户许可后安装)然后通过 JS 使用它的属性并消除对 XMLHttpRequest 的需要。 您知道解决此问题的任何此类插件或其他回旋处吗? (即在没有 XMLHttpRequest 的情况下通过 JS 获取跨域数据) 当然我们不能使用 XMLHttpRequest,因为我们无法控制目标页面标题,我们显然希望对用户隐藏整个过程
【问题讨论】:
-
"隐藏在用户的眼睛之外" 你可能会问"请,有人告诉我如何解除大银行的安全系统,因为它阻止我走进安全...并禁用摄像头所以银行员工看不到我在做什么。”即使你能把它拉下来,那也是错误的。真的应该有一些方法来阻止人们询问如何在这个网站上进行黑客攻击。
标签: javascript security plugins xmlhttprequest cross-domain