[object Object]

← back to Resume Queue Viewer

Add rel="noopener noreferrer" to external link in queue card

2fda15cae7b1224d2f5d52838f6aa4fcaaf37ba2 · 2026-05-19 21:19:20 -0700 · SteveStudio2

Prevents the opened tab from window.opener'ing back into the queue viewer
and stops referrer leaks for any external URL stored on a parking-lot or
wins item.

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

Files touched

Diff

commit 2fda15cae7b1224d2f5d52838f6aa4fcaaf37ba2
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date:   Tue May 19 21:19:20 2026 -0700

    Add rel="noopener noreferrer" to external link in queue card
    
    Prevents the opened tab from window.opener'ing back into the queue viewer
    and stops referrer leaks for any external URL stored on a parking-lot or
    wins item.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
 server.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server.js b/server.js
index dfb3c7e..4ff630b 100644
--- a/server.js
+++ b/server.js
@@ -279,7 +279,7 @@ function render() {
   window.LASTITEMS = items;
   g.innerHTML = items.map((i, idx) => {
     const stars = i.type==='win' ? '<span class="stars">'+'★'.repeat(i.rank||3)+'</span>' : '';
-    const link = i.link ? '<a href="'+esc(i.link)+'" target="_blank">open ↗</a>' : '';
+    const link = i.link ? '<a href="'+esc(i.link)+'" target="_blank" rel="noopener noreferrer">open ↗</a>' : '';
     const proj = i.project ? esc(i.project) : '';
     const runnable = i.type==='parking' || i.type==='recap';
     const runLabel = i.type==='recap' ? 'Resume ▸' : 'Run ▸';

← 132ee9c Broaden .gitignore to cover snapshot/backup/editor cruft  ·  back to Resume Queue Viewer  ·  Add 404 guard for snapshot/backup URL paths 65467ca →