1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00

Block special pages from the public. (#2479)

Otherwise, users could invoke 500 errors.
This commit is contained in:
Arunoda Susiripala 2017-07-06 17:59:25 +05:30 committed by GitHub
parent ace1939c4b
commit 1c7b2603d4
2 changed files with 17 additions and 0 deletions

View file

@ -24,6 +24,11 @@ const internalPrefixes = [
/^\/static\//
]
const blockedPages = {
'/_document': true,
'/_error': true
}
export default class Server {
constructor ({ dir = '.', dev = false, staticMarkup = false, quiet = false, conf = null } = {}) {
this.dir = resolve(dir)
@ -251,6 +256,10 @@ export default class Server {
return this.handleRequest(req, res, parsedUrl)
}
if (blockedPages[pathname]) {
return await this.render404(req, res, parsedUrl)
}
if (this.config.poweredByHeader) {
res.setHeader('X-Powered-By', `Next.js ${pkg.version}`)
}

View file

@ -49,6 +49,14 @@ describe('Production Usage', () => {
const res2 = await fetch(url, { headers })
expect(res2.status).toBe(304)
})
it('should block special pages', async () => {
const urls = ['/_document', '/_error']
for (const url of urls) {
const html = await renderViaHTTP(appPort, url)
expect(html).toMatch(/404/)
}
})
})
describe('With navigation', () => {