Javascript 如何真正打开一个网页内的任何网站?

Javascript 如何真正打开一个网页内的任何网站?,javascript,iframe,proxy,Javascript,Iframe,Proxy,我一直在开发一个数字平台,其核心思想是允许用户在一个网页内打开和访问其他网站。我曾尝试使用iframe,可能还有大部分github公共资源,但我所做的与我认为在网上普遍可用的内容无关。我正在搜索一个系统,该系统允许我的平台创建类似于浏览器选项卡的内容,但在网站内部,因此它必须允许用户访问每个网站,而无需任何类型的阻止(例如,您尝试通过Iframe访问Facebook时得到的内容),此外,还可以使用浏览器保存的cookies和缓存来确保更流畅的体验。我知道有一些方法是通过我试图访问的网站直接授予的

我一直在开发一个数字平台,其核心思想是允许用户在一个网页内打开和访问其他网站。我曾尝试使用iframe,可能还有大部分github公共资源,但我所做的与我认为在网上普遍可用的内容无关。我正在搜索一个系统,该系统允许我的平台创建类似于浏览器选项卡的内容,但在网站内部,因此它必须允许用户访问每个网站,而无需任何类型的阻止(例如,您尝试通过Iframe访问Facebook时得到的内容),此外,还可以使用浏览器保存的cookies和缓存来确保更流畅的体验。我知道有一些方法是通过我试图访问的网站直接授予的权限来实现的,但在这种情况下,我想创建一种机制,允许这种连接以相同的方式发生,如果它是由普通浏览器实现的(到目前为止,我称之为proto浏览器)

我该怎么做才能让它工作?我应该为每个用户创建代理服务器吗?我如何让用户访问亚马逊并进行购买,或访问Facebook并发布内容而不离开proto浏览器?

简单回答:我认为你做不到。为什么?见下文。 大多数网站都会屏蔽框架以防止一种叫做点击劫持(clickjacking)的攻击,这种攻击会诱使用户做一些无害但有害的事情。下面是一个例子

var-iframe=document.getElementsByTagName(“iframe”)[0];
函数透明(){
iframe.style.opacity=0;
}
函数不透明(){
iframe.style.opacity=1;
}
正文{
字体系列:无衬线;
保证金:0;
}
iframe{
边界:无;
位置:绝对位置;
排名:0;
底部:0;
左:0;
右:0;
宽度:100%;
身高:100%;
z指数:9999;
不透明度:0;
过渡:不透明度2s;
}
.点击杰克{
位置:绝对位置;
顶部:10px;
右:140px;
}
在下面的示例中,一个假按钮位于透明Wikipedia iframe上的链接下方

要查看示例,请执行以下操作:

  • 单击“不透明”查看Wikipedia iframe。请注意,您正在查看名为“主页”的页面
  • 单击“透明”以查看假按钮
  • 点击假按钮
  • 单击“不透明”查看Wikipedia iframe
  • 您是否注意到页面已更改为“贡献”?这是点击劫持的一个例子
  • 透明的 不透明的 点击这里!
    你不能

    如果
    X-Frame-Options
    或内容安全策略禁止第三方网站在框架中显示内容,则禁止他们这样做。如果它可以被第三方网站覆盖,那么它将是一个毫无意义的安全特性

    如果浏览器出于隐私原因阻止第三方cookie,则网站无法覆盖该cookie。如果它可以被网站禁用,那么它将是一个毫无意义的隐私功能

    如果您实现了反向代理以按需从其他站点复制内容,那么您将无法读取用于代理的站点的cookie。如果我的浏览器发送与
    http://mybank.com
    http://yourproxy.com/mybank.com/

    如果您使用SOCKS或类似工具实现了转发代理,那么您可以这样做……但这需要使用网站的每个人都必须重新配置浏览器以使用您的代理。这将允许您访问他们的所有HTTP请求和响应。这将是一个重大的安全问题


    如果你想以这种方式访问用户在互联网上的行为,那么你需要编写一个浏览器,而不是一个网站