[object Object]

← back to Age Theme Slider

server: 404-guard snapshot paths from static root

4d10ff5453cdb47e399ea493c91c356773dc9fe1 · 2026-05-19 17:26:07 -0700 · Steve Abrams

Adds an Express middleware that returns 404 for any request whose
path contains .bak / .bak.* / .pre-* segments — guards against an
accidentally-committed snapshot file leaking source from the static
root. Runs after /api/bands and before express.static so legitimate
asset paths are unaffected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 4d10ff5453cdb47e399ea493c91c356773dc9fe1
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue May 19 17:26:07 2026 -0700

    server: 404-guard snapshot paths from static root
    
    Adds an Express middleware that returns 404 for any request whose
    path contains .bak / .bak.* / .pre-* segments — guards against an
    accidentally-committed snapshot file leaking source from the static
    root. Runs after /api/bands and before express.static so legitimate
    asset paths are unaffected.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
 server.js | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/server.js b/server.js
index 2f6d56a..15c7cdb 100644
--- a/server.js
+++ b/server.js
@@ -35,6 +35,15 @@ app.get('/api/bands', (_req, res) => {
   catch (e) { res.status(500).json({ error: String(e.message || e) }); }
 });
 
+// Snapshot-file 404 guard — never serve .bak / .bak.* / .pre-* paths from
+// the static root, even if one slips into public/ by accident.
+app.use((req, res, next) => {
+  if (/\.(bak|pre-)/i.test(req.path) || /(^|\/)\.pre-/i.test(req.path)) {
+    return res.status(404).type('text/plain').send('Not Found');
+  }
+  next();
+});
+
 app.use(express.static(path.join(__dirname, 'public'), { extensions: ['html'] }));
 
 app.get('/health', (_req, res) => res.json({ ok: true, port: PORT, bands_version: loadBands().version }));

← 2412cac gitignore: cover .bak / .pre-* snapshot artifacts  ·  back to Age Theme Slider  ·  add: pre-stage Meta Pixel snippet (placeholder; flip via _dw 6b33987 →