[object Object]

← back to Purelymail Fleet Viewer

server: 404 bak/pre/orig/rej/swp/tilde paths before static lookup

336eef0b681e040c1eea9c64e31932285705298b · 2026-05-19 18:33:07 -0700 · SteveStudio2

Files touched

Diff

commit 336eef0b681e040c1eea9c64e31932285705298b
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date:   Tue May 19 18:33:07 2026 -0700

    server: 404 bak/pre/orig/rej/swp/tilde paths before static lookup
---
 server.js | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/server.js b/server.js
index 9d9080c..c676bf5 100644
--- a/server.js
+++ b/server.js
@@ -113,7 +113,18 @@ async function captureShot(domain) {
   }
 }
 
+// 404-guard: never serve editor/scratch/backup detritus (.bak, .pre-*, etc.)
+// even if a stray file slips into a static-served directory. Matched against
+// the URL pathname BEFORE any file lookup.
+const JUNK_PATH_RE = /\.(bak(\..*)?|pre-[^/]*|orig|rej|swp|swo)$|~$/i;
+
 const server = http.createServer((req, res) => {
+  const pathname = (req.url || '').split('?')[0];
+  if (JUNK_PATH_RE.test(pathname)) {
+    res.writeHead(404, { 'Content-Type': 'text/plain' });
+    res.end('not found');
+    return;
+  }
   if (req.url.startsWith('/api/shot')) {
     const domain = (new URL(req.url, 'http://x').searchParams.get('domain') || '')
       .replace(/[^a-z0-9.\-]/gi, '');

← e42a811 gitignore: broaden patterns to cover bak/pre/swp/orig/rej de  ·  back to Purelymail Fleet Viewer  ·  viewer: add noreferrer to every target=_blank anchor 21a690a →