unsloth/studio/frontend
Daniel Han e3c7948874 Studio: block tabnabbing from HTML preview popups
Codex P1 on the previous commit: granting both ``allow-popups`` and
``allow-popups-to-escape-sandbox`` while forcing every link through
``<base target="_blank">`` lets a malicious assistant-emitted link
open a regular browser tab that retains ``window.opener``. The
destination page can then call
``window.opener.top.location.href = '...'`` and tabnab the original
Studio tab.

Drop ``allow-popups-to-escape-sandbox``. ``allow-popups`` stays so
the click still produces a tab instead of being silently dropped,
but the popup now INHERITS the iframe sandbox (no
allow-same-origin, no allow-top-navigation), so it cannot reach
back into the host. Trade-off: the opened tab loads with an opaque
origin and some real sites render degraded inside the popup. This
is the deliberate exchange for tabnabbing safety; the chat-message
preview iframe is the primary surface, the popup is a follow-up
link click.

Existing rendering-iframe sandbox test now asserts
allow-popups-to-escape-sandbox is NOT present.
2026-05-25 09:50:20 +00:00
..
public Polish/cloud to providers (#5450) 2026-05-15 19:29:21 +04:00
src Studio: block tabnabbing from HTML preview popups 2026-05-25 09:50:20 +00:00
.gitignore perf(studio): upgrade to Vite 8 + auto-install bun for faster frontend builds (#4522) 2026-03-25 04:27:41 -07:00
.gitkeep add studio root folder 2026-02-02 09:14:35 +00:00
.install-script-allowlist Studio: harden install-script gate against PR self-allowlist 2026-05-24 16:04:31 +00:00
.npmrc security: NOT affected by Mini Shai-Hulud (May-12 wave) -- forward-looking hardening only (#5397) 2026-05-13 04:58:12 -07:00
biome.json feat: add seed dataset support with configuration, preview, and builder utilities 2026-02-14 18:44:38 +01:00
components.json add studio root folder 2026-02-02 09:14:35 +00:00
data-designer.openapi (1).yaml save and import, and fixes 2026-02-04 14:32:49 +01:00
eslint.config.js Final cleanup 2026-03-12 18:28:04 +00:00
index.html Final cleanup 2026-03-12 18:28:04 +00:00
package-lock.json Studio: render HTML and SVG fences inline with sandboxed preview tabs 2026-05-23 14:00:36 +00:00
package.json Studio: render HTML and SVG fences inline with sandboxed preview tabs 2026-05-23 14:00:36 +00:00
tsconfig.app.json Relax frontend unused local check (#4388) 2026-03-17 16:04:11 -07:00
tsconfig.json cleanup 2026-02-04 13:28:39 +01:00
tsconfig.node.json cleanup 2026-02-04 13:28:39 +01:00
vite.config.ts Fix Install commands for Windows + 1 line installs (#4447) 2026-03-19 02:09:09 -07:00
vitest.config.ts Studio: render HTML and SVG fences inline with sandboxed preview tabs 2026-05-23 14:00:36 +00:00