【问题标题】:How can I block request thats come out from iframe如何阻止从 iframe 发出的请求
【发布时间】:2019-06-12 20:15:23
【问题描述】:

F.e.我有这样的代码

index.html

<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <iframe src="iframe.html"></iframe>
</body>
</html>

iframe.html

<html>
    <head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
    </head>
    <body>
        <script>
            $.get("http://badsite.com");
            $.get("http://goodsite.com");
        </script>
    </body>
</html>

如您所见,iframe 发出两个请求,如何阻止对http://badsite.com 的请求 我需要使用js、php,还是应该配置我的服务器或更改我的.htaccess 文件?

【问题讨论】:

  • 您为什么要这样做?你究竟想做什么?
  • 我正在尝试阻止加载到 iframe 中的广告
  • @АрыстанКалиакпаров — 将其他人的内容加载到您自己的网站上,同时删除他们的广告,这会带来非常恶劣的法律和道德影响。不要。
  • 我是为个人使用而做的。我正在尝试阻止广告,因为它包含指向病毒站点的链接
  • 如果您将其用于个人用途,请使用 Ghostery 或 Adblock Plus 等浏览器扩展程序。

标签: javascript html iframe server


【解决方案1】:

HTML5 在iframe 上引入了the sandbox attribute,即禁用JavaScript 加载和执行。

【讨论】:

  • @Quentin ,示例 iframe 代码仅包含 AJAX 请求,因此此解决方案非常适合例如 ;)
  • 它包含 两个 Ajax 请求,并且 OP 询问如何阻止其中 一个
  • @Quentin,嗯,你说得对……这很难做到
【解决方案2】:

使用connect-src 设置CSP

您不能专门阻止 badsite,但您只能允许 goodsite(或包含 goodsite 的网站列表)。

iframe.html 的 HTTP 响应标头应包括:

Content-Security-Policy: connect-src http://goodsite.com http://different-goodsite.com

您也可以使用元元素。

<meta http-equiv="Content-Security-Policy" content="connect-src http://goodsite.com http://different-goodsite.com">

【讨论】:

  • 不换iframe可以吗?
  • @АрыстанКалиакпаров - 我不这么认为
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 2021-03-16
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多