附加'沙箱'属性设置为动态创建的iframe以停止重定向

Attach 'sandbox' attribute to dynamically created iframe to stop redirects

本文关键字:iframe 重定向 属性 沙箱 设置 附加 动态 创建      更新时间:2023-09-26

我们使用Google DFP在我们的网站上提供来自许多不同广告网络的广告。问题是骗子能够以某种方式创建广告,自动引导用户离开我们的网站。

我想找到一种方法来阻止重定向成为可能,因为广告网络似乎没有解决这个问题。他们只是在发现广告后将其删除,然后又出现了另一个广告。我想出的一个解决方案是在谷歌的iframe中添加"沙盒"属性。从我的测试来看,这似乎奏效了。

示例:

<iframe id="testframe" src="/test.htm"></iframe>
<script>
  $('#testframe')[0].sandbox="allow-scripts";
</script>

/test.htm

<script>
  top.location.href = "http://yahoo.com";
  alert('javascript still works but no redirect!');
</script>

问题是,尽管DFP标记是基于javascript的,所以我不知道如何将"sandbox"属性附加到动态创建的iframe中。如何在创建iframe但在加载之前添加此属性?或者你有其他解决方案来阻止广告重定向吗?

DFP标签示例

<div id='dfp-ad-ad_name'>
<script type='text/javascript'> 
googletag.cmd.push(function() { googletag.display('dfp-ad-ad_name'); }); 
</script> 
</div>

根据GPT文档,您应该能够通过指定使注入的iframe成为沙盒

setSafeFrameConfig({sandbox: true})

它可以在单个插槽级别或全局页面级别上使用。

不确定这是否能有效防止恶意横幅重定向浏览器,但可能值得一试。