【问题标题】:Cross Origin XMLHttpRequest iFrame "Mini Browser"跨域 XMLHttpRequest iFrame“迷你浏览器”
【发布时间】:2015-01-28 06:28:08
【问题描述】:

是否可以绕过安全性并在网页中模仿全浏览器或移动浏览器?

我想手动设置 HTML,使用 AJAX/XMLHttpRequest(“获取”请求)

document.querySelector('#myiframe').contentWindow.document.write("<html><body>Hello
world</body></html>");

(来自How to set HTML content into an iframe

任何人都可以验证这是可能的吗?我猜你会丢失相关的网站日期(cookies、缓存等)

【问题讨论】:

  • 要对不同的 origin 执行 XMLHttpRequest,假设它是相同的 protocol,即您发送的服务器请求需要在响应中发送正确的 CORS 标头。例如,这是为了阻止您尝试访问某人的网上银行。
  • 我对CORS很熟悉,但它真的那么简单吗?只有顶级浏览器(Chrome)才能使用http://协议,这似乎是武断的,但我所看到的任何地方,人们都说这是不可能的
  • 这并不“简单”,因为这意味着您不能请求随机站点,您只能访问您可以控制的服务器。协议不必是 http:,它可以是 https:,嘿,如果您的浏览器允许它是 file: 或其他东西。关于协议的一点是你不能在例如https 资源并为 http 资源执行 XMLHttpRequest。如果您尝试更改端口,也不确定 CORS 是否有效。

标签: javascript html ajax iframe xmlhttprequest


【解决方案1】:

是否有可能绕过安全性

是的,许多浏览器允许您在安全关闭模式下启动它们,例如在 chrome 上,您使用 --disable-web-security 标志运行程序。但是,您永远不应要求客户这样做

另一种方法是编写一个 Java 小程序或其他一些第三方插件,它可以获取您想要的资源,然后使用您喜欢的方法将其传递给浏览器,从中您可以根据需要在数据上使用 JavaScript。这种方法会丢失 cookie 之类的东西,并且可能会被利用,所以我不推荐它。

在网页中模仿全浏览器或移动浏览器?

最后,如果您不介意“URL 栏”在用户导航时显示错误内容,您可以使用默认行为。这种方法是完全可以接受的,并且不会规避任何安全性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 2012-01-28
    • 1970-01-01
    • 2011-10-20
    相关资源
    最近更新 更多