windowPostMessageTransport throws when an unrelated postMessage has null data
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 74/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
Direzione di ricerca
Trova l’implementazione di getWindowPostMessageTransport e ispeziona il message listener installato da connect(). Riproduci il problema con un message event il cui data è null o undefined, quindi verifica che i payload non oggetto vengano ignorati, mentre la gestione esistente di target, stream, origin e dei messaggi MetaMask rimanga invariata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened?
getWindowPostMessageTransport().connect() installs a global window.addEventListener('message', ...) listener. That listener receives every postMessage on the page, including messages sent by unrelated scripts or iframes.
The current listener destructures event.data before validating it:
const { target, data } = event.data;
If another page script sends a valid postMessage with null or undefined data, this throws a TypeError before the listener can ignore the unrelated message.
Minimal reproduction
After connect() has registered the message listener, dispatching a message shaped like this is enough to trigger the crash:
messageHandler({
data: null,
origin: location.origin,
} as MessageEvent);
Expected: unrelated/non-object message payloads are ignored, the same as wrong target/stream/origin messages.
Actual: the listener throws while destructuring event.data.
Suggested fix
Add a small guard before destructuring:
if (!event.data || typeof event.data !== 'object') {
return;
}
This keeps the existing MetaMask message handling unchanged while preventing unrelated page messages from surfacing avoidable listener errors.
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 4
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Issue simili
-
area:docs bug triage:confirmed
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
Cotal-AI/Cotal#2875 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
anomalyco/models.dev#8862 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
fix(data-lake): wizard source step still previews the local slug, not the server-disambiguated oneForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertadata-lake
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
ready-for-triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
konflux-ci/konflux-ui#1596 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue priority: low size: XS
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno