Javascript 从本地响应头中删除内容安全策略(角度)
只有在本地运行应用程序时,我才会遇到问题 看起来我的Javascript 从本地响应头中删除内容安全策略(角度),javascript,angular,webpack,http-headers,content-security-policy,Javascript,Angular,Webpack,Http Headers,Content Security Policy,只有在本地运行应用程序时,我才会遇到问题 看起来我的内容安全策略默认设置为'none' 我最近从Angular 7迁移到Angular 8,以便更容易实现延迟加载,但我不明白为什么这会在默认情况下将CSP头设置为default src'none' 此外,它在一段时间内运行良好 但是,当我在本地启动应用程序时,在响应标题中,我看到以下行: 内容安全策略:默认src'none' 我还指出,开发和测试环境的响应标题中没有这一行 本地响应头: HTTP/1.1 404 Not Found X-Power
内容安全策略默认设置为'none'
我最近从Angular 7迁移到Angular 8,以便更容易实现延迟加载,但我不明白为什么这会在默认情况下将CSP头设置为default src'none'
此外,它在一段时间内运行良好
但是,当我在本地启动应用程序时,在响应标题中,我看到以下行:
内容安全策略:默认src'none'
我还指出,开发和测试环境的响应标题中没有这一行
本地响应头:
HTTP/1.1 404 Not Found
X-Powered-By: Express
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
Content-Length: 139
Date: Mon, 28 Oct 2019 16:14:09 GMT
Connection: keep-alive
在其他环境中,响应标头不包括内容安全策略:默认src'none'
行
此外,我还尝试将这一行添加到index.html文件中:
但这并没有改变什么,它可能被http服务器(Webpack?)覆盖了
我假设在我的开发和测试环境中,我的Apache配置为不使用CSP,因此标头不包含内容安全策略
我怎样才能在本地做到同样的效果?由于它是Angular 8,我没有访问网页包配置的权限,我相信它是在@Angular devkit/build Angular
中处理的。(虽然可以通过我读过的customwebpack
等插件访问,但我宁愿避免)
我不认为Angular使用默认配置,其中内容安全策略:default src'none'
是默认策略。(至少应该是self
)
最后,这里是angular.json文件的一部分,该文件是用于构建的本地conf:
"configurations": {
"local": {
"optimization": true,
"outputHashing": "none",
"sourceMap": true,
"extractCss": true,
"namedChunks": true,
"aot": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": false
},
让我知道另一个配置文件(tsconfig,package…)在这里是否有用。好的,所以它看起来像是由--deployUrl
构建选项引起的
我从angular.json文件中删除了它,重建后错误消失了。
所以我猜Angular在部署url存在时添加了一个限制性CSP头