问题场景,iframe 通过src 加载三方website,同时三方website 调用api 生成 web 页面,页面中会包含click 链接(打开新页面)之后会包含文件下载
参考图如下

iframe sandbox 造成附件下载问题解决_解决方法

 

 

问题

对于通过api 生成的web page ,click 打开是另外一个web page (那怕是新打开浏览器都阻止下载

解决方法

通过发现是因为iframe 开启了sandbox,如果需要支持需要在iframe 的sandbox 中配置allow download 支持,参考

 

<iframe sandbox="allow-scripts allow-same-origin allow-popups allow-forms allow-downloads"  src='xxxxxx'></iframe>

参考sandbox 继承关系

iframe sandbox 造成附件下载问题解决_解决方法_02

 

 

说明

iframe 的sandbox 是一个很不错的安全能力,但是配置少了,或者配置的不合理造成的问题也是不少的,做好完整测试很重要

参考资料

​https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe​​​
​​​https://web.dev/sandboxed-iframes/​