我已经使用Helmet 4.4.1版本尝试过此操作,下面两个版本都将upgrade-unsecure-requests CSP设置为true
upgradeInsecureRequests: [] and upgradeInsecureRequests: ['true']
以上哪种格式是正确的?
wrrgggsh1#
这对我很有效:
app.use( helmet.contentSecurityPolicy({ directives: { "script-src": ["'self'"], upgradeInsecureRequests: null }, }) );
正在将升级不安全请求设置为空:
upgradeInsecureRequests: null
ghg1uchk2#
已解决:我们可以简单地添加upgradeInsecureRequests:[]
vtwuwzda3#
defaultDirectives = helmet.contentSecurityPolicy.getDefaultDirectives(); delete defaultDirectives['upgrade-insecure-requests']; app.use( helmet() ); app.use(helmet.contentSecurityPolicy({ directives: { ...defaultDirectives, }, }));
delete部分会移除defaultDirectives对象中的upgrade-insecure-requests机码。
delete
defaultDirectives
upgrade-insecure-requests
mspsb9vt4#
经过几个小时的反复试验,我终于成功了。我是这样做的:
const defaultCspOptions = helmet.contentSecurityPolicy.getDefaultDirectives(); delete defaultCspOptions["upgrade-insecure-requests"] app.use(helmet({ contentSecurityPolicy: { useDefaults: false, directives: { ...defaultCspOptions }, }) )
就像Nico塞拉诺的回答一样,是的。事实上,它启发了我们这样做。我只是添加了useDefaults: false。否则,即使'upgrade-insecure-requests'属性不再存在于defaultCspOptions中, Helm 也会自动用默认值重新添加任何丢失的属性。使delete部分变得无用。
useDefaults: false
'upgrade-insecure-requests'
defaultCspOptions
4条答案
按热度按时间wrrgggsh1#
这对我很有效:
正在将升级不安全请求设置为空:
ghg1uchk2#
已解决:我们可以简单地添加upgradeInsecureRequests:[]
vtwuwzda3#
这对我很有效:
delete
部分会移除defaultDirectives
对象中的upgrade-insecure-requests
机码。mspsb9vt4#
经过几个小时的反复试验,我终于成功了。我是这样做的:
就像Nico塞拉诺的回答一样,是的。事实上,它启发了我们这样做。我只是添加了
useDefaults: false
。否则,即使'upgrade-insecure-requests'
属性不再存在于defaultCspOptions
中, Helm 也会自动用默认值重新添加任何丢失的属性。使delete
部分变得无用。