在我们的网站上,来自广告Provider 的外部脚本(所有Java脚本)偶尔会将用户导航到一些恶意软件站点.
任何JS代码都可以从广告Provider 加载(例如,有时它会创建一个iframe来显示广告,有时广告会直接显示在主页面中).
我想知道如何安全地执行prevent any external script from triggering top level navigation,脚本是否从IFRAME中执行.
目前的解决方案是在每个响应中添加CSP sandbox个头:
header( 'Content-Security-Policy: sandbox allow-downloads allow-forms allow-modals allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation allow-top-navigation-to-custom-protocols;' );
该策略是为了防止顶级导航by omitting the 100 header.
为了防止顶级导航,这是一个足够的解决方案吗?有没有更好的方法来实现这一点?