我在Angulars项目index.html
文件的meta标签中定义了CSP
<meta http-equiv="Content-Security-Policy"
content="default-src 'self';
connect-src 'self' https://baseurl1/ https://baseurl2/ https://baseurl3/;
img-src 'self' data: http://baseurl/;
frame-src 'self' blob:;
media-src 'self' https://baseurl/;
script-src 'self' 'unsafe-inline' 'unsafe-eval' http://baseurl/;
style-src 'self' 'unsafe-inline';">
我的问题是,我想根据应用程序中的用户选择,将另外一个connect-src
动态列入白名单。由于index.html
是静态页面,该怎么办?
URL是从http服务调用的,该服务可以到达标准服务器接口(不同的提供程序)。用户可以选择他的提供者,因此URL会更改。没有已知的可能网址集。如果我能以某种方式CSP忽略此服务发送的所有请求,那也很好。
您可以尝试使用Meta组件来动态更新CSP。
下面将对您有所帮助。
我不会这样考虑内容安全策略,因为假设浏览器将以这种方式使用CSP元头(我对此表示怀疑),那么更好和更安全的植入内容安全策略是使用HTTP响应头代替。有关快速参考,请检查content-security-policy.com。