如何防止外部脚本进行顶级导航

问题描述 投票:0回答:1

在我们的网站上,来自广告提供商的外部脚本(所有 Javascript)偶尔会将用户导航到某些恶意软件网站。

可以从广告提供商加载任何 JS 代码(例如,有时它会创建一个 iframe 来显示广告,有时广告会直接显示在主页中)。

我想知道如何安全地防止任何外部脚本触发顶级导航,无论脚本是否从 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;' );

该策略是通过省略 sandbox allow-top-navigation

 标题
来防止顶级导航

这是否是防止顶级导航的充分解决方案?有没有更好的方法来实现这个目标?

javascript content-security-policy sandbox
1个回答
0
投票

仅阻止顶级导航是不够的。

allow-scripts
会允许的。例如,第三个 JavaScript 包含:

window.location = 'https://example.com'
© www.soinside.com 2019 - 2024. All rights reserved.