Javascript 隐藏HTML Iframe

Javascript 隐藏HTML Iframe,javascript,html,security,iframe,Javascript,Html,Security,Iframe,我有一个带有iframe的页面,为了简化这个案例,让我们假设它如下所示: <!DOCTYPE html> <html> <head> <title></title> </head> <body> <iframe src="http://example.com"></iframe> </body> </html> 假设该页面位于I

我有一个带有iframe的页面,为了简化这个案例,让我们假设它如下所示:

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <iframe src="http://example.com"></iframe>
  </body>
</html>

假设该页面位于Internet上,然后您输入它。它在iframe内部加载

我想更改此地址,这样您就看不到了,因为您可以仅使用我的页面打开此地址,而不只是放入webbrowser的第二个选项卡

我在页面源中看到(右键单击->页面源) 我还看到浏览器请求的网络开发者工具。所以我可以复制这个地址并在新的webbrowser选项卡中打开它


我该怎么做才能让你不可能知道地址:

我能想到的唯一办法是,你自己在代码中截取页面并提供html。所以看起来是这样的:

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <iframe src="http://example.com"></iframe>
  </body>
</html>
  • 有人向您的页面发出请求
  • 在后端代码中提供页面之前,您需要抓取上面的html example.com
  • 提供来自后端请求的html

  • 这可能不是正确的格式,因为您缺少css或功能,因为您缺少js,但您只需要确保包含这些内容

    有一个header-X-Frame-Options,允许您在iframe中阻止打开页面,但我认为这样做是不可能的。

    iframe是客户端

    这意味着浏览器要呈现IFrame,它必须对客户端web浏览器可见。 隐藏它的唯一方法是开发web代理

    <!DOCTYPE html>
    <html>
      <head>
        <title></title>
      </head>
      <body>
        <iframe src="grab_secret_site.php"></iframe>
      </body>
    </html>
    
    将指向站点上的icon.jpg,而不是
    example.com


    如果不希望在没有父框架的情况下加载页面,可以在外部页面中创建一个会话变量(例如PHP会话),然后在IFrame中进行检查。如果它不存在,请将用户重定向回外部页面。

    这是不可能的…这是因为A:即使使用一些javascript或Ajax请求,也无法隐藏iframe src,B:无法隐藏通过网络并在每个webbrowser开发工具中可见的请求?一次性使用URL是解决方案。。。或者让页面检测到它在iframe中,如果没有重定向…不幸的是,iframe中的页面是第三方产品,它不会检查它是否在ifame中…我必须保护它在我这边,以便Internet用户在没有我的应用程序的情况下无法打开它。这个第三方产品是另一个拥有自己http地址(example.com)的web应用程序,所以我必须像@Al-Katawazi说的那样做。另一方面,iframe中的页面不是静态的,它是交互式的——因此它是一个可以用数据(姓名等)填充的表单。然后在框架内你可以提交它。如果它不是交互式的,我不会使用iframe并在服务器端创建它。。。可以做什么?这样解决方案中就不会有任何iframe了?如果您能够查看网络日志,网络流量也不会有任何请求?@michealAtmi。。。这个答案是说从服务器上抓取它并发送下去。。。。我不想让客户端这么做。我想保护它免受互联网用户的攻击,在服务器端,它可以在一些日志中。。据我所知,页面应该在服务器端呈现,并附加到响应中。。。我使用Angular/React+nodejs来呈现页面,所以这是可能的。不幸的是,iframe中的页面是第三方产品,它不会检查它是否在ifame中。。。据我所知,可以在服务器端呈现最终页面的某些部分(甚至使用许多不同的http地址),然后将其返回到浏览器,而Internet用户将不知道最终页面部分的地址。但是,如果它是表单应用程序,那么您在iframe中填充表单,它不是静态的,它是交互式的。。。那么在没有iframe的情况下可以做到吗?