将“sandbox”属性附加到动态创建的iframe以停止重定向

时间:2015-03-24 16:03:35

标签: javascript jquery iframe google-dfp

我们使用Google DFP广告管理系统从许多不同的广告网络在我们的网站上投放广告。问题是诈骗者能够以某种方式创建广告,自动将用户从我们的网站重定向。

我想找到一种方法来阻止重定向,因为广告网络似乎并没有解决这个问题。他们只是在找到广告后删除广告,然后再播出另一个广告。我提出的一个解决方案是添加沙盒'属于Google的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的,所以我不知道如何附加沙盒&#39;属性为动态创建的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>

1 个答案:

答案 0 :(得分:2)

根据GPT documentation,您应该可以通过指定

来对注入的iframe进行沙盒化处理
setSafeFrameConfig({sandbox: true})

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

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