Harden API layer: encode session IDs and validate export payload
Session fetch (useSession.ts): - Wrap the session ID in encodeURIComponent before interpolating into the fetch URL. Session IDs can contain characters like '+' or '/' that would corrupt the path without encoding. Export route (export.ts): - Add validation that redactedMessageUuids, when present, is an array. Previously only visibleMessageUuids was checked, so a malformed redactedMessageUuids value (e.g. a string or object) would silently pass validation and potentially cause downstream type errors in the HTML exporter. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -42,7 +42,7 @@ export function useSession(): SessionState {
|
||||
setSessionLoading(true);
|
||||
setSessionError(null);
|
||||
try {
|
||||
const res = await fetch(`/api/sessions/${id}`);
|
||||
const res = await fetch(`/api/sessions/${encodeURIComponent(id)}`);
|
||||
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
||||
const data = await res.json();
|
||||
setCurrentSession(data);
|
||||
|
||||
Reference in New Issue
Block a user