ext-apps/examples
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Olivier Chafik c7ef5f009b
fix: Add missing origin parameter to PostMessageTransport default constructor, verify origins in example sandbox proxy (#207)
* fix(app): add source validation to default PostMessageTransport

App.connect() now passes window.parent as both eventTarget and eventSource,
enabling source validation by default. This ensures apps only accept
messages from their parent window, preventing potential cross-app
message spoofing attacks.

Previously, the default transport only specified the target but not the
source for validation, meaning apps would accept messages from ANY window.

* fix(sandbox): add origin validation for host messages

The sandbox proxy now validates that messages from the parent window
come from the expected host origin (derived from document.referrer).
This prevents malicious pages from sending spoofed messages to the sandbox.

Changes:
- Extract EXPECTED_HOST_ORIGIN from document.referrer
- Validate event.origin against expected origin for parent messages
- Use specific origin instead of '*' when sending to parent
- Reject and log messages from unexpected origins

This addresses the TODO comment that was previously in the code.

* validate messages from app come from same origin as sandbox proxy

* fix(basic-host): be resilient to individual server connection failures

Use Promise.allSettled instead of Promise.all when connecting to
servers, so that a single server failure doesn't crash the entire UI.
Failed connections are logged as warnings but the UI continues with
the servers that connected successfully.

Also fixes video-resource-server missing server-utils.ts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-07 14:20:49 +00:00
..
basic-host fix: Add missing origin parameter to PostMessageTransport default constructor, verify origins in example sandbox proxy (#207) 2026-01-07 14:20:49 +00:00
basic-server-react Clean up examples (#182) 2025-12-19 11:44:27 +00:00
basic-server-vanillajs Clean up examples (#182) 2025-12-19 11:44:27 +00:00
budget-allocator-server Clean up examples (#182) 2025-12-19 11:44:27 +00:00
cohort-heatmap-server Clean up examples (#182) 2025-12-19 11:44:27 +00:00
customer-segmentation-server Clean up examples (#182) 2025-12-19 11:44:27 +00:00
integration-server Clean up examples (#182) 2025-12-19 11:44:27 +00:00
qr-server feat: add server helpers, make connect() to default to parent post transport (#165) 2025-12-16 21:25:26 +00:00
scenario-modeler-server Clean up examples (#182) 2025-12-19 11:44:27 +00:00
sheet-music-server Add sheet-music-server example 2026-01-05 16:06:09 -06:00
system-monitor-server Clean up examples (#182) 2025-12-19 11:44:27 +00:00
threejs-server Remove viewport 2025-12-31 21:36:29 -08:00
video-resource-server fix(examples): add missing server-utils.ts to video-resource-server (#205) 2026-01-07 14:08:15 +00:00
wiki-explorer-server Clean up examples (#182) 2025-12-19 11:44:27 +00:00
run-all.ts refactor(examples): use concurrently API for proper process cleanup (#128) 2025-12-11 14:04:39 +01:00