Add x-powered-by header
This commit is contained in:
parent
357308ce22
commit
4765348107
|
@ -288,6 +288,11 @@ security:
|
||||||
frameguard:
|
frameguard:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
|
# Set x-powered-by HTTP header to "PeerTube"
|
||||||
|
# Can help remote software to know this is a PeerTube instance
|
||||||
|
powered_by_header:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
tracker:
|
tracker:
|
||||||
# If you disable the tracker, you disable the P2P on your PeerTube instance
|
# If you disable the tracker, you disable the P2P on your PeerTube instance
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
|
@ -286,6 +286,11 @@ security:
|
||||||
frameguard:
|
frameguard:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
|
# Set x-powered-by HTTP header to "PeerTube"
|
||||||
|
# Can help remote software to know this is a PeerTube instance
|
||||||
|
powered_by_header:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
tracker:
|
tracker:
|
||||||
# If you disable the tracker, you disable the P2P on your PeerTube instance
|
# If you disable the tracker, you disable the P2P on your PeerTube instance
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
|
@ -56,8 +56,13 @@ try {
|
||||||
app.set('trust proxy', CONFIG.TRUST_PROXY)
|
app.set('trust proxy', CONFIG.TRUST_PROXY)
|
||||||
|
|
||||||
app.use((_req, res, next) => {
|
app.use((_req, res, next) => {
|
||||||
|
// OpenTelemetry
|
||||||
res.locals.requestStart = Date.now()
|
res.locals.requestStart = Date.now()
|
||||||
|
|
||||||
|
if (CONFIG.SECURITY.POWERED_BY_HEADER.ENABLED === true) {
|
||||||
|
res.setHeader('x-powered-by', 'PeerTube')
|
||||||
|
}
|
||||||
|
|
||||||
return next()
|
return next()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ function checkMissedConfig () {
|
||||||
'user.video_quota', 'user.video_quota_daily',
|
'user.video_quota', 'user.video_quota_daily',
|
||||||
'video_channels.max_per_user',
|
'video_channels.max_per_user',
|
||||||
'csp.enabled', 'csp.report_only', 'csp.report_uri',
|
'csp.enabled', 'csp.report_only', 'csp.report_uri',
|
||||||
'security.frameguard.enabled',
|
'security.frameguard.enabled', 'security.powered_by_header.enabled',
|
||||||
'cache.previews.size', 'cache.captions.size', 'cache.torrents.size', 'admin.email', 'contact_form.enabled',
|
'cache.previews.size', 'cache.captions.size', 'cache.torrents.size', 'admin.email', 'contact_form.enabled',
|
||||||
'signup.enabled', 'signup.limit', 'signup.requires_approval', 'signup.requires_email_verification', 'signup.minimum_age',
|
'signup.enabled', 'signup.limit', 'signup.requires_approval', 'signup.requires_email_verification', 'signup.minimum_age',
|
||||||
'signup.filters.cidr.whitelist', 'signup.filters.cidr.blacklist',
|
'signup.filters.cidr.whitelist', 'signup.filters.cidr.blacklist',
|
||||||
|
|
|
@ -236,6 +236,9 @@ const CONFIG = {
|
||||||
SECURITY: {
|
SECURITY: {
|
||||||
FRAMEGUARD: {
|
FRAMEGUARD: {
|
||||||
ENABLED: config.get<boolean>('security.frameguard.enabled')
|
ENABLED: config.get<boolean>('security.frameguard.enabled')
|
||||||
|
},
|
||||||
|
POWERED_BY_HEADER: {
|
||||||
|
ENABLED: config.get<boolean>('security.powered_by_header.enabled')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
TRACKER: {
|
TRACKER: {
|
||||||
|
|
|
@ -561,15 +561,13 @@ describe('Test config', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should remove the custom configuration', async function () {
|
it('Should remove the custom configuration', async function () {
|
||||||
this.timeout(10000)
|
|
||||||
|
|
||||||
await server.config.deleteCustomConfig()
|
await server.config.deleteCustomConfig()
|
||||||
|
|
||||||
const data = await server.config.getCustomConfig()
|
const data = await server.config.getCustomConfig()
|
||||||
checkInitialConfig(server, data)
|
checkInitialConfig(server, data)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should enable frameguard', async function () {
|
it('Should enable/disable security headers', async function () {
|
||||||
this.timeout(25000)
|
this.timeout(25000)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -580,13 +578,15 @@ describe('Test config', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(res.headers['x-frame-options']).to.exist
|
expect(res.headers['x-frame-options']).to.exist
|
||||||
|
expect(res.headers['x-powered-by']).to.equal('PeerTube')
|
||||||
}
|
}
|
||||||
|
|
||||||
await killallServers([ server ])
|
await killallServers([ server ])
|
||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
security: {
|
security: {
|
||||||
frameguard: { enabled: false }
|
frameguard: { enabled: false },
|
||||||
|
powered_by_header: { enabled: false }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await server.run(config)
|
await server.run(config)
|
||||||
|
@ -599,6 +599,7 @@ describe('Test config', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(res.headers['x-frame-options']).to.not.exist
|
expect(res.headers['x-frame-options']).to.not.exist
|
||||||
|
expect(res.headers['x-powered-by']).to.not.exist
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue