Skip to content

Commit 1c242aa

Browse files
committed
Add x-11ty-rebuild-token to secure rebuild endpoint
1 parent ce90158 commit 1c242aa

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

server.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const DEFAULT_OPTIONS = {
2828
watch: [], // Globs to pass to separate dev server chokidar for watching
2929
aliases: {}, // Aliasing feature
3030
rebuildUrl: null, // POST URL to trigger rebuild
31+
rebuildUrlToken: "", // Secret token in x-11ty-rebuild-token header
3132

3233
// Logger (fancier one is injected by Eleventy)
3334
logger: {
@@ -421,6 +422,12 @@ class EleventyDevServer {
421422

422423
eleventyDevServerMiddleware(req, res, next) {
423424
if (this.options.rebuildUrl && req.url === this.options.rebuildUrl && req.method === 'POST') {
425+
const token = req.headers['x-11ty-rebuild-token'];
426+
if (token !== this.options.rebuildUrlToken) {
427+
res.writeHead(403, { 'Content-Type': 'text/plain' });
428+
return res.end('Forbidden');
429+
}
430+
424431
this.eventBus.emit('eleventyDevServer.rebuild');
425432
res.writeHead(200);
426433
return res.end();

0 commit comments

Comments
 (0)