"document.location" 中 javascript 的 CSP

CSP with javascript in "document.location"

我们的应用程序正在更新以符合新的 CSP(内容安全策略)规则。

例如内联事件处理程序替换为 addEventListener(),内联样式替换为 CSS.

但是,在某些情况下,文档位置设置为 javascript 表达式,例如...

document.location = 'javascript:someFunction()';

...导致以下错误...

"Refused to run the JavaScript URL because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'strict-dynamic' 'unsafe-inline' 

我的问题:重写它以使其符合 CSP 规则的等效方法是什么?

unsafe-inline屏蔽了。请考虑:

  1. 如果 someFunction() returns 是一个有效的 URI,您可以像 @ControlAltDel 提到的那样写 document.location = someFunction();
  2. 如果没有,你可以调用someFunction()